python - 检查 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]
解决方案
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]
推荐阅读
- spss - 如何在SPSS中将所有可能的组组合与EMMEANS进行比较?
- gradle - Android 4.1 Gradle 构建失败
- swift - UIDocumentPickerViewController 在底部显示空白区域
- javascript - 来自 json 的动态构建 ChartJs 的竖板或条不与 y 轴底部对齐
- powerbi - 在电源查询中根据条件将多行合并为 1
- reactjs - 在 redux 中使用 React 钩子
- r - 在R中获取组中的下一个日期
- google-sheets - 使用命令行将数据从 BigQuery 加载到 Google 表格中
- php - 关联数组键在传递给 SoapClient 时成为 XML 中的参数
- python - 如何使覆盖的 QGraphicsTextItem 可编辑和可移动?