在将数据与另一个数据帧合并时,如何避免一个数据帧中的几列?

时间:2020-10-09 17:56:56

标签: python pandas dataframe

我有两个数据帧df1df2

df1 =
A  B  C  D
1  2  3  7
.
. 

df2 = 
A  E  F  G
1  5  4  5
.
.

通常我想使用pandas合并两个数据帧中的特定列时,请执行以下操作:

import pandas as pd

df3 = pd.merge(df1[[A,B]],df2[[A,G]], on='A', how='inner')

但是,我有兴趣了解如何避免在数据框中添加几列并将其余部分合并。例如,在合并时,我想避免C中的Ddf1列以及E中的Fdf2列,以便合并df3仅具有A,B,G列。

这是逆向工程。如果每个数据帧中的列很少,则可能没有用,第一种方法就足够了,但是在处理数百个列时,如果要避免使用任何几列,则第二种方法会有所帮助。

2 个答案:

答案 0 :(得分:4)

drop

df1.drop(['C','D'], axis=1).merge(df2.drop(['E','F'], axis=1), on='A')

答案 1 :(得分:0)

尝试一下:

df3=df1.merge(df2, on='A',how ="inner")
df3.drop(['E,'F',C','D'], axis=1)

这可行,但是此解决方案效率不高,因此在合并之前删除将是最佳选择。