如何使用比较多个数据框并使用熊猫返回匹配项
Posted
技术标签:
【中文标题】如何使用比较多个数据框并使用熊猫返回匹配项【英文标题】:How to use compare several dataframes and return the matches using pandas 【发布时间】:2018-01-22 21:12:01 【问题描述】:如果我有几个看起来像这样的 pandas 数据框:
Name Score
Sam 4
Aaron 5
Neil 6
Ben 7
Name Score
Morgan 5
Neil 6
Adam 8
Ben 5
Name Score
Evan 5
Nathan 4
Neil 6
Ben 2
如何使用 pandas.concat(join) 将所有数据帧合并为一个大数据帧,然后只返回在所有三个数据帧中找到的名称?
预期输出:
Name
Neil
Ben
【问题讨论】:
【参考方案1】:如果你只对名字感兴趣,你可以像这样得到交集
pd.Series(list(set(df1.Name) & set(df2.Name) & set(df3.Name)))
0 Neil
1 Ben
【讨论】:
【参考方案2】:您可以将pd.concat
与参数join='inner'
一起使用
pd.concat([d1, d2, d3], axis=1, join='inner')
Score Score Score
Name
Neil 6 6 6
Ben 7 5 2
如果需要区分列,可以传递keys
参数
pd.concat(
[d.Score for d in [d1, d2, d3]],
axis=1, join='inner', keys=['d1', 'd2', 'd3']
)
d1 d2 d3
Name
Neil 6 6 6
Ben 7 5 2
【讨论】:
非常好,一如既往!以上是关于如何使用比较多个数据框并使用熊猫返回匹配项的主要内容,如果未能解决你的问题,请参考以下文章