我有以下数据框:
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/