[英]Python Pandas : compare two data-frames along one column and return content of rows of both data frames in another data frame
[英]Matching the column names of two pandas data-frames in python
我有两个名为df1
和df2
pandas数据帧,以便`
df1: a b c d
1 2 3 4
5 6 7 8
和
df2: b c
12 13
我希望结果如此
result: b c
2 3
6 7
这里应该注意abcd
是pandas dataframe中的列名。 两个pandas数据帧的形状和值是不同的。 我想将df2
的列名与df1
的列名匹配,并选择df1
的所有行,其头部与df2
的列名匹配df2
仅用于选择df1
的特定列,保持所有行。 我尝试了下面给出的一些代码,但这给了我一个空索引。
df1.columns.intersection(df2.columns)
上面的代码没有给我我的支持,因为它给索引标题没有值。 我想编写一个代码,在其中我可以将我的两个数据帧作为输入,并比较列标题以供选择。 我没有硬编码列名。
我相信你需要:
df = df1[df1.columns.intersection(df2.columns)]
或者像@Zero在评论中指出:
df = df1[df1.columns & df2.columns]
或者,使用reindex
In [594]: df1.reindex(columns=df2.columns)
Out[594]:
b c
0 2 3
1 6 7
也作为
In [595]: df1.reindex(df2.columns, axis=1)
Out[595]:
b c
0 2 3
1 6 7
交叉路口:
df = df1[df1.columns.isin(df2.columns)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.