[英]Match and sum columns from 2 dataframes having unequal rows
我有2 df,列A,B和C,DI想比較A和C的值,並在有匹配的地方添加B的值。 例如
df1 = pd.DataFrame([['a', 23], ['b', 53], ['c', 23], ['d', 12], ['e', 34]], columns=['A', 'B'])
df2 = pd.DataFrame([['c', 1], ['e', 1], ['b', 1]], columns=['C', 'D'])
這里c,e和b是匹配的。
我的結果應該是23 + 34 + 53 = 110。 我打算將此結果存儲在col E中,因為df2 ['E'] = result
基本上是DAX中的sumx函數
這是您需要的嗎?
df2['E']=df1.loc[df1.A.isin(df2.C),'B'].sum()
df2
Out[377]:
C D E
0 c 1 110
1 e 1 110
2 b 1 110
嘗試使用DataFrame.merge()
方法
df_merged = df1.merge(df2, left_on='A', right_on='C')
result = df_merged['B'].sum() # 110
df2['E'] = result
另一種方法是使用map
系列
df2['E'] = df2['C'].map(df1.set_index('A')['B']).sum()
In [64]: df2
Out[64]:
C D E
0 c 1 110
1 e 1 110
2 b 1 110
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.