Python:为两个熊猫数据框过滤出相同的列

时间:2018-07-23 07:33:57

标签: python pandas dataframe

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

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

我知道我可以合并两个数据帧,然后再次拆分它们以达到我的结果。有更好的方法来完成此操作吗?

1 个答案:

答案 0 :(得分: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