如果列组合从熊猫数据框中相同,如何删除行

时间:2019-05-20 10:57:59

标签: python python-3.x pandas dataframe

我有一个看起来像这样的熊猫数据框。

'Column1' 'Column2' 'Column3'
'cat'     'bat'.    '100'
'toy'    'flower'.  '80'
'bat'    'cat'      '100'

如果在这种情况下,第1行和第3行中的cat和bat,第1列和第2列的组合相同,我想删除1行。

结果数据框应只包含

'Column1'  'Column2' 'Column3'
'cat'.     'bat'.     '100'
'toy'.     'flower'.  '80'

1 个答案:

答案 0 :(得分:4)

首先通过np.sort进行排序以提高性能,创建DataFrame并使用DataFrame.duplicatedboolean indexing进行过滤,并用~进行倒置屏蔽:

mask = pd.DataFrame(np.sort(df[['Column1','Column2']], axis=1), index=df.index).duplicated()

df1 = df[~mask]
print (df1)
  Column1   Column2 Column3
0   'cat'     'bat'   '100'
1   'toy'  'flower'    '80'
相关问题