python - 如何检查具有多个列表的 pandas 列中的项目是否重复?

标签 python pandas list object

我有这个 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/

相关文章:

css - UL LI 4 列列表 : Center in each column

python - 如何使用 HTTP 重定向传递信息(在 Django 中)

python - Django 管理 session : change default value

python - 如何用 pandas groupby 中的大小划分总和

python - Pandas:将小 DataFrame 合并为大 DataFrame,用小 DataFrame 覆盖

c# - 在列表中添加新项目时出现奇怪的速度差异(C#)

python - 如何使用 pandas 和 yahoo finance 获得 ' USDJPY'(货币汇率)?

Python输出每个子目录下的文件个数到一个csv文件

python - 融化后从 pandas 数据框中提取行作为列

python - 如果Python中满足条件,如何从列表中提取值?