【问题标题】:Python: filter out same columns for two pandas dataframesPython:过滤掉两个熊猫数据框的相同列
【发布时间】:2018-12-30 14:29:41
【问题描述】:

我有两个熊猫数据框。说,

df1

    |A|B|C
2001|1|2|3
2002|2|3|9
2003|2|1|3

df2

    |A|C|D
2001|3|2|2
2002|1|9|9
2003|4|3|1

所以两个数据帧都存在列名 A 和 C,我想为这两个数据帧中的每一个过滤它们。换句话说,我需要两个新的数据框。

新的 df1(列 B 已从原始 df1 中删除,因为 'B' 不是 df2 中的列名)

    |A|C
2001|1|3
2002|2|9
2003|2|3

新的 df2(列 D 已从原始 df2 中删除,因为 'D' 不是 df1 中的列名)

    |A|C
2001|3|2
2002|1|9
2003|4|3

我知道我可以合并两个数据框,然后再次拆分它们以实现我的结果。有没有更好的方法来完成这个?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    获取常用列

    In [213]: cols = df1.columns.intersection(df2.columns)
    
    In [214]: df1[cols]
    Out[214]:
          A  C
    -
    2001  1  3
    2002  2  9
    2003  2  3
    
    In [215]: df2[cols]
    Out[215]:
          A  C
    -
    2001  3  2
    2002  1  9
    2003  4  3
    

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 2020-06-08
      • 1970-01-01
      • 2020-08-16
      • 2020-04-06
      • 2017-12-15
      • 2014-12-02
      • 2021-12-01
      • 2021-10-12
      相关资源
      最近更新 更多