我要两个熊猫数据框。说,
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
我知道我可以合并两个数据帧,然后再次拆分它们以达到我的结果。有更好的方法来完成此操作吗?
答案 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