python - Pandas:找到跨列的共同值

标签 python pandas dataframe

我有以下数据框:

df = pd.DataFrame({'TX':['bob','tim','frank'],'IL':['fred','bob','tim'],'NE':['tim','joe','bob']})

我想隔离所有列中出现的字符串以生成一个列表。预期结果是:

output = ['tim','bob']

我能想到实现这一点的唯一方法是使用我想避免的 for 循环。是否有适合完成此任务的内置 pandas 函数?

最佳答案

您可以为每列的计数值创建掩码,并通过 DataFrame.all 测试每行是否缺少值。 :

m = df.apply(pd.value_counts).notna()
print (m)
          TX     IL     NE
bob     True   True   True
frank   True  False  False
fred   False   True  False
joe    False  False   True
tim     True   True   True

L = m.index[m.all(axis=1)].tolist()
print (L)
['bob', 'tim']

关于python - Pandas:找到跨列的共同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60803478/

相关文章:

python - 为什么 XOR 会返回这两个列表中缺失的值?

python - django-endless 与基于类的 View 示例

python - 使用 tkinter 的简单动画

python - 拆分 pandas 中的地址列

python - scrapy - 如何用 Pandas 数据框中的数据填充项目?

python - 如何根据列值创建 pandas 虚拟对象

python - 为什么这会给我留下 2 个相同的 DF?

r - 长度参数无效

python - 按 2 列进行多重过滤并使用 Polars 显示一些最佳结果

python - 在服务器上安全地执行用户提交的 python 代码