[英]Combining rows of two Dataframes
我一直在查看the documentation
和Pandas Merging 101
,但找不到幫助。
>>> df
Values Count Percentage
0 Apple 0 0
1 Banana 0 0
2 Samsung 0 0
3 Orange 0 0
>>> df2
Values Count Percentage
0 Apple 14 0.74
1 Samsung 5 0.26
>>> result
Values Count Percentage
0 Apple 14 0.74
1 Banana 0 0
2 Samsung 5 0.26
3 Orange 0 0
請記住, df2
始終是df
的子集。
換句話說, df2
中的每個值都將保證出現在df
的值中。
result = df.merge(df2, on='Values', how='left')
>>> result
Values Count_x Percentage_x Count_y Percentage_y
0 Apple 0 0 14.0 0.74
1 Banana 0 0 NaN NaN
2 Samsung 0 0 5.0 0.26
3 Orange 0 0 NaN NaN
但結果有點令人失望。
任何幫助將不勝感激。
或者您可以使用update
。 設置索引后,只需用新值更新 df1 中的值:
df1 = df1.set_index('Values')
df1 = df1.update(df2.set_index('Values')).reset_index()
我認為您想要的是pd.concat
后跟.drop_duplicates()
>>> df1
Values Count Percentage
0 Apple 0 0
1 Banana 0 0
2 Samsung 0 0
3 Orange 0 0
>>> df2
Values Count Percentage
0 Apple 14 0.74
1 Samsung 5 0.26
>>> pd.concat([df1, df2]).drop_duplicates(subset='Values', keep='last')
Values Count Percentage
1 Banana 0 0.00
3 Orange 0 0.00
0 Apple 14 0.74
1 Samsung 5 0.26
你應該:
執行此操作的代碼是:
wrk = df.set_index('Values')
wrk.update(df2.set_index('Values'))
df = wrk.reset_index()
結果是:
Values Count Percentage
0 Apple 14.0 0.74
1 Banana 0.0 0.00
2 Samsung 5.0 0.26
3 Orange 0.0 0.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.