簡體   English   中英

如何合並兩個 Pandas 數據幀並添加重疊列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM