Python 基于其他列从公共列dataframe中删除内容

Python 基于其他列从公共列dataframe中删除内容,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个8列的数据框。某些行仅在某些列中有所不同。我想删除重复材料的内容。假设C1列和C2列是键,C3列和C4列是一组C5的值,c6列是另一组的值 这是我的 | C1 | C2 | C3 | C4 | C5 | C6| |A | C | E | F | H | I| |A | C | E | F | H | J| |B | D | E | F | H | I| |B | D | E | G | H | I| 这是我想要的 | C1 | C2 | C3 | C4 | C5 | C6| |A |

我有一个8列的数据框。某些行仅在某些列中有所不同。我想删除重复材料的内容。假设C1列和C2列是键,C3列和C4列是一组C5的值,c6列是另一组的值 这是我的

| C1 | C2 | C3 | C4 | C5 | C6|
|A | C | E | F | H | I|
|A | C | E | F | H | J|
|B | D | E | F | H | I|
|B | D | E | G | H | I|
这是我想要的

| C1 | C2 | C3 | C4 | C5 | C6|
|A | C | E | F | H | I|
|| | | | H | J|
|B | D | E | F | H | I|
|| | E | G | ||

这不是最优雅的方式,但它应该可以工作

import pandas as pd 

data = [['C1','C2','C3','C4','C5','C6'],
['A' ,'C' ,'E' ,'F' ,'H' ,'I'], 
['A' ,'C' ,'E' ,'F' ,'H','J'],
['B' ,'D' ,'E' ,'F' ,'H' ,'I'],
['B' ,'D','E','G' ,'H','I']]

df = pd.DataFrame(data[1:])
df.columns = data[0]

new_data = []
for index, row in df.iterrows():
    if index == 0:
        pass
    else:
        current_row = df.iloc[index]
        last_row = df.iloc[index-1]
        new_row = []
        if [last_row['C1'], last_row['C2']] != [current_row['C1'], current_row['C2']]:
             new_row.append([current_row['C1'], current_row['C2']])
        else:
            new_row.append(['', ''])
        if  [last_row['C3'], last_row['C4']] != [current_row['C3'], current_row['C4']]:
            new_row.append([current_row['C3'], current_row['C4']])
        else:
            new_row.append(['', ''])
        if  [last_row['C5'], last_row['C6']] != [current_row['C5'], current_row['C6']]:
            new_row.append([current_row['C5'], current_row['C6']])
        else:
            new_row.append(['', ''])
        new_data.append([item for sublist in new_row for item in sublist])

print (pd.DataFrame(new_data))

我的错误,改变了问题如果我有三行包含相同的键怎么办?或者四行?您可能需要调整三个连续的if语句,并计算df.iloc[index-2]和df.iloc[index-3]等。。。