繁体   English   中英

在python中匹配两个pandas数据帧的列名

[英]Matching the column names of two pandas data-frames in python

我有两个名为df1df2 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM