![](/img/trans.png)
[英]How to update a subset of Pandas DataFrame rows with new (different) values?
[英]update pandas dataframe with adding new rows - how?
讓我們有兩個 Python pandas 數據幀
df1:
key1 key2 volume1 volume2
111 bbb fff ggg
222 bbb hhh hhh
333 aaa fff hhh
df2:
key1 key2 volume1 volume2
222 bbb hhh HHH
333 aaa fff GGG
444 ccc ggg hhh
如何獲得 dataframe
東風:
key1 key2 volume1 volume2
111 bbb fff ggg
222 bbb hhh HHH
333 aaa fff GGG
444 ccc ggg hhh
使用DataFrame.merge
將列key1, key2
上的數據幀df1
和df2
outer
合並,然后使用Series.fillna
更新列volume1
和volume2
中的值:
df3 = df1.merge(df2, on=['key1', 'key2'], how='outer', suffixes=['', '_r'])
df3['volume1'] = df3.pop('volume1_r').fillna(df3['volume1'])
df3['volume2'] = df3.pop('volume2_r').fillna(df3['volume2'])
結果:
# print(df3)
key1 key2 volume1 volume2
0 111 bbb fff ggg
1 222 bbb hhh HHH
2 333 aaa fff GGG
3 444 ccc ggg hhh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.