python - 在python中匹配两个 Pandas 数据框的列名

标签 python pandas pandas-groupby

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

这里需要注意的是a b c d是pandas dataframe中的列名。两个 Pandas 数据框的形状和值都不同。我想将 df2 的列名与 df1 的列名相匹配,并选择 df1 的标题匹配的所有行与df2的列名.. df2仅用于选择df1维护所有行的特定列。我尝试了下面给出的一些代码,但这给了我一个空索引。

df1.columns.intersection(df2.columns)

上面的代码没有给出我的结果,因为它给出了没有值的索引 header 。我想编写一个代码,在其中我可以将我的两个数据帧作为输入,并比较列标题以供选择。我不必对列名称进行硬编码。

最佳答案

我相信你需要:

df = df1[df1.columns.intersection(df2.columns)]

或者像@Zero 在评论中指出的那样:

df = df1[df1.columns & df2.columns]

关于python - 在python中匹配两个 Pandas 数据框的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48404453/

相关文章:

python - 在 python/django 中保存一周中用户可用性的最佳方法

python - 使用 pandas 或 numpy 填充缺失的时间序列数据

python - 如何使用Python Pandas使用动态字符串来过滤数据帧

python - 如何迭代和展平一个 groupby 值中的每一列

python - np.where索引大于某个值

python - 如何从 matplotlib 图中提取数据

python - 在 HTML <td> 元素中自动换行 Qt Qlabel 文本

python - 根据 Pandas 中现有列的功能创建新列的动态方法

python - pandas:使用正则表达式验证数据框单元格

python - 使用 Pandas Group By 和 .sum() 获得 % Rate