python - 查找多个数据框列之间的公共(public)元素

标签 python string pandas intersection series

希望你能帮助我。我是 python 和 pandas 的新手,所以请多多包涵。我正在尝试查找三个数据框之间的通用词,并且我正在使用 Jupiter Notebook。

举个例子:

df1=
A
dog
cat
cow 
duck
snake

df2=
A
pig
snail
bird
dog

df3=
A
eagle
dog 
snail
monkey

所有数据框中只有一列是A,我想找

  1. 所有列中的公共(public)词
  2. 自己的专栏所独有且不常见的词。

例子:

鸭子是df1特有的,蜗牛是df2特有的,猴子是df3特有的。

我正在使用下面的代码,但没有直接得到我想要的东西,

df1[df1['A'].isin(df2['A']) & (df2['A']) & (df3['A'])]

请让我知道我要去哪里错了。干杯

最佳答案

最简单的方法是使用set交集

list(set(df1.A) & set(df2.A) & set(df3.A))

['dog']

但是,如果您有一长串这些东西,我会使用 functools 中的 reduce。同样的技术也可以用于 @cᴏʟᴅsᴘᴇᴇᴅ 对 np.intersect1d 的使用。

from functools import reduce

list(reduce(set.intersection, map(set, [df1.A, df2.A, df3.A])))

['dog']

关于python - 查找多个数据框列之间的公共(public)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46556169/

相关文章:

python - 如果超过变化的行索引,则将 numpy 矩阵元素设置为零

C++ 查找已排序字符串中的重复字符

python - 如何在不使用 try/except 的情况下检查字符串是否表示 int?

Python 字符串方法被遮蔽

python - Pandas 中的时间序列箱线图

python - 来自模型的嵌套排列

python - 为什么 pandas.groupby.mean 比并行实现快得多

python - 将字符串列从 DataFrame 转换为 float for .sum()

python - Spotify 授权代码(不是访问 token )即将过期 - 我该如何规避此问题?

python - 将 pandas 生成的图渲染到 matplotlib Canvas 以进行流式处理