上下文
我正在尝试将两个大型CSV文件合并在一起。
问题
假设我有一个熊猫数据框,如下所示…

EntityNum    foo   ...
------------------------
1001.01      100
1002.02       50
1003.03      200

还有一个像这样的。。。
EntityNum    a_col    b_col
-----------------------------------
1001.01      alice        7
1002.02        bob        8
1003.03        777        9

我想像这样加入他们:
EntityNum    foo    a_col
----------------------------
1001.01      100    alice
1002.02       50      bob
1003.03      200      777

所以请记住,我不希望在最后的结果中出现错误。我怎样才能和熊猫一起完成这个任务?
使用SQL,我可能应该做如下事情:
SELECT t1.*, t2.a_col FROM table_1 as t1
                      LEFT JOIN table_2 as t2
                      ON t1.EntityNum = t2.EntityNum;

搜索
我知道使用merge是可能的。这就是我尝试过的:
import pandas as pd

df_a = pd.read_csv(path_a, sep=',')
df_b = pd.read_csv(path_b, sep=',')
df_c = pd.merge(df_a, df_b, on='EntityNumber')

但是,当谈到在最终数据帧中避免一些不需要的列时,我陷入了困境。

最佳答案

您可以首先通过相关数据框列的标签(例如df_a[['EntityNum', 'foo']]访问这些列,然后加入这些列。

df_a[['EntityNum', 'foo']].merge(df_b[['EntityNum', 'a_col']], on='EntityNum', how='left')

注意merge的默认行为是进行内部连接。

08-20 03:09
查看更多