【发布时间】:2018-06-14 10:16:21
【问题描述】:
我有两个df - df_a 和 df_b,
# df_a
number cur
1000 USD
2000 USD
3000 USD
# df_b
number amount deletion
1000 0.0 L
1000 10.0 X
1000 10.0 X
2000 20.0 X
2000 20.0 X
3000 0.0 L
3000 0.0 L
我想将df_a 与df_b 合并,
df_a = df_a.merge(df_b.loc[df_b.deletion != 'L'], how='left', on='number')
df_a.fillna(value={'amount':0}, inplace=True)
还要在结果df_a 中创建一个名为deleted 的标志,它具有三个可能的值-full、partial 和none;
full - 如果所有行都与特定的number 值关联,则具有deletion = L;
partial - 如果某些行与特定的number 值相关联,则具有deletion = L;
none - 没有与特定number 值关联的行,有deletion = L;
在进行合并时,不应考虑来自df_b 和deletion = L 的行;所以结果看起来像,
number amount deletion deleted cur
1000 10.0 X partial USD
1000 10.0 X partial USD
2000 20.0 X none USD
2000 20.0 X none USD
3000 0.0 NaN full USD
我想知道如何实现这一点。
【问题讨论】:
标签: python-3.x pandas dataframe merge