簡體   English   中英

匹配和求和2個數據幀中具有不相等行的列

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

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