【发布时间】:2018-03-14 17:43:40
【问题描述】:
我想合并两个 pandas 数据框。
df1 =
A B
2 11
2 13
2 15
2 19
2 25
2 35
2 41
2 47
2 46
2 51
3 9
3 15
3 17
3 23
3 25
3 29
5 4
5 23
5 28
与另一个数据框。
df2 =
A B C
2 11 abc
2 13 cdd
2 35 cdd
2 41 cdd
2 47 cdd
3 9 cdd
3 15 cdd
3 17 cdd
3 23 cdd
两个数据帧都按“A”排序,然后按“B”排序。我想通过columns['A', 'B']合并;因此,对于缺少数据的“C”列,我想用na 填充它们,但对于na 的每个缺失块使用na_uniqueNumber。
如何更新此合并方法:
data_frames = [df1, df2]
df_update = reduce(lambda left,right: pd.merge(
left, right, on=['A', 'B'], how='outer'), data_frames).fillna('na')
注意:在其他列存在的情况下,代码应仅在“C”中使用唯一值更新na。
预期输出:
df2 =
A B C
2 11 abc
2 13 cdd
2 15 na_01
2 19 na_01
2 25 na_01
2 35 cdd
2 41 cdd
2 47 cdd
2 46 na_02
2 51 na_02
3 9 cdd
3 15 cdd
3 17 cdd
3 23 cdd
3 25 na_03
3 29 na_03
5 4 na_04
5 23 na_04
5 28 na_04
谢谢,
【问题讨论】:
标签: python pandas dataframe merge