[英]How do I merge two Pandas DataFrames and add the overlapping columns
我正在嘗試在同一個 DocID 上合並多個 DataFrame,然后對權重求和,但是當我合並時,它會創建 Weight_x,Weight_y。 這僅適用於兩個 DataFrame,但要根據用戶輸入合並更改的 Dataframe 的數量,因此合並會多次創建 Weight_x、Weight_y。 那么如何合並超過 2 個 DataFrame 以使它們在 DocID 上合並並且對權重進行求和?
例子:
df1= DocID Weight
1 4
2 7
3 8
df2= DocID Weight
1 5
2 9
8 1
finalDf=
DocID Weight
1 9
2 16
您可以合並,將“DocID”列設置為索引,然后將剩余的列相加。 然后,您可以根據需要重新索引並重命名生成的 final_df 中的列:
df_final = pd.merge(df1, df2, on=['DocID']).set_index(['DocID']).sum(axis=1)
df_final = pd.DataFrame({"DocID": df_final.index, "Weight":df_final}).reset_index(drop=True)
Output:
>>> df_final
DocID Weight
0 1 9
1 2 16
df1.set_index('DocID').add(df2.set_index('DocID')).dropna()
Weight
DocID
1 9.0
2 16.0
你能試試這個pd.merge(df1, df2, on=['DocID']).set_index(['DocID']).sum(axis=1)
你現在可以給 sum 列起任何名字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.