我有这个 pandas df:
Name
0 [MARCIO, HAMILTON, FERREIRA]
1 [NILSON, MARTINIANO, FERREIRA]
2 [WALTER, MALIENI, JUNIOR]
3 [CARLOS, ALBERTO, ARAUJO, NETTO]
如果其中一个项目出现在另一个列表中,我想对其进行标记。在这种情况下,输出应如下所示:
Name Check
0 [MARCIO, HAMILTON, FERREIRA] True
1 [NILSON, MARTINIANO, FERREIRA] True
2 [WALTER, MALIENI, JUNIOR] False
3 [CARLOS, ALBERTO, ARAUJO, NETTO] False
有没有一种Python式的方法可以做到这一点,或者我需要应用一组for
句子? (对于对象中的 i:对于列表中的 k
...)。由于我的文件很大,我担心它会很重。
最佳答案
与Ben的答案类似,但使用重复
而不是groupby().nunique()
:
s = series.explode().reset_index()
df['Check'] = (s.drop_duplicates()
.duplicated('Name', keep=False)
.groupby(s['index']).any()
)
输出:
Name Check
0 [MARCIO, HAMILTON, FERREIRA] True
1 [NILSON, MARTINIANO, FERREIRA] True
2 [WALTER, MALIENI, JUNIOR] False
3 [CARLOS, ALBERTO, ARAUJO, NETTO] False
关于python - 如何检查具有多个列表的 pandas 列中的项目是否重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62051281/