我试图在同一个DataFrames上合并多个DocID,然后汇总权重,但当我合并时,它会创建Weight_x、Weight_y。这只对两个DataFrames来说是可以的,但是根据用户输入合并更改的数据量是可以的,因此合并会多次创建Weight_x、Weight_y。那么,我如何才能合并超过2个DataFrames,使它们在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发布于 2020-05-26 03:30:52
您可以合并,将'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)输出:
>>> df_final
DocID Weight
0 1 9
1 2 16发布于 2020-05-26 03:35:27
df1.set_index('DocID').add(df2.set_index('DocID')).dropna()
Weight
DocID
1 9.0
2 16.0发布于 2020-05-26 03:27:21
您可以尝试这个pd.merge(df1, df2, on=['DocID']).set_index(['DocID']).sum(axis=1)吗?您现在可以给sum列指定任何名称了。
https://stackoverflow.com/questions/62014086
复制相似问题