首页 > 解决方案 > 检查 pandas 数据框中的相同列表

问题描述

嗨,我有一列列表,我想返回列表相同且顺序相同的行。


d = {'id':[1,2,3], 'lst' : [['GG','PP', 'DD'],['DD','PP', 'GG'], ['GG','PP', 'DD']]}

dd = pd.DataFrame(d)
print(dd)
    id       lst
0   1   [GG, PP, DD]
1   2   [DD, PP, GG]
2   3   [GG, PP, DD]

我这样做但我得到了错误的输出

dd[dd.apply(lambda row: row.lst==row.lst, axis=1)]
    id       lst
0   1   [GG, PP, DD]
1   2   [DD, PP, GG]
2   3   [GG, PP, DD]

我想要的输出是这个

   id       lst
0   1   [GG, PP, DD]
2   3   [GG, PP, DD]

标签: pythonpandaslistdataframe

解决方案


Series.duplicated与列表中的元组一起使用keep=False

df = dd[dd['lst'].apply(tuple).duplicated(keep=False)]
print (df)
   id           lst
0   1  [GG, PP, DD]
2   3  [GG, PP, DD]

推荐阅读