【发布时间】:2019-10-07 18:21:11
【问题描述】:
我有许多需要合并的 DataFrame。
假设:
基数:id 约束 1'一个' 2'b' 3'c' df_1: id 值约束 1 1'一个' 2 2'一' 3 3'一' df_2: id 值约束 1 1'b' 2 2'b' 3 3'b' df_3: id 值约束 1 1'c' 2 2'c' 3 3'c'如果我尝试合并所有这些(它将处于循环中),我会得到:
a = pd.merge(base, df_1, on=['id', 'constraint'], how='left')
b = pd.merge(a, df_2, on=['id', 'constraint'], how='left')
c = pd.merge(b, df_3, on=['id', 'constraint'], how='left')
id 约束值 value_x value_y
1 'a' 1 NaN NaN
2 'b' 南 2 南
3 'c' NaN NaN 3
期望的输出是:
id 约束值 1'一个'1 2'b'2 3'c' 3我知道combine_first 并且它有效,但我不能采用这种方法,因为它慢了数千倍。
是否有merge 可以在列重叠的情况下替换值?
有点类似于this question,没有答案。
【问题讨论】: