我有两个数据帧df1
和df2
。
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
中的D
和df1
列以及E
中的F
和df2
列,以便合并df3
仅具有A,B,G
列。
这是逆向工程。如果每个数据帧中的列很少,则可能没有用,第一种方法就足够了,但是在处理数百个列时,如果要避免使用任何几列,则第二种方法会有所帮助。
答案 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)
这可行,但是此解决方案效率不高,因此在合并之前删除将是最佳选择。