猿问

如何对引用其他数据帧的总数求和

我想总结两个数据帧的所有组合,


DataFrame A


         ColA    ColB   Sales

           1       A      10

           1       B      20

           1       C      100

           2       D      1000

           2       E      2000


DataFrame B

         ColA    ColB   

          1      A,B

          2      E

我对 DataFrame 的预期结果是


        ColA     ColB   TotalSales

         1       A,B     30

         2       E       2000


翻过高山走不出你
浏览 190回答 2
2回答

陪伴而非守候

您可以使用pd.DataFrame.apply部分矢量化解决方案:def summer(x):    m1 = df_a['ColA'].eq(x['ColA'])    m2 = df_a['ColB'].isin(x['ColB'].split(','))    return df_a.loc[m1 & m2, 'Sales'].sum()df_b['TotalSales'] = df_b.apply(summer, axis=1)print(df_b)   ColA ColB  TotalSales0     1  A,B          301     2    E        2000

GCT1015

您可以尝试选择位于数据框 B ColB 列中的数据框 A 行并添加所选的销售列#df ColA    ColB   Sales   1       A      10   1       B      20   1       C      100   2       D      1000   2       E      2000df.set_index('ColB',inplace=True)#df#       ColA    Sales# ColB      # A        1    10# B        1    20# C        1    100# D        2    1000# E        2    2000#df1 #ColA    ColB    # 1      A,B # 2      Edf1['TotalSales'] = df1.ColB.str.split(',').apply(lambda x: df.loc[x]['Sales'].sum() )出去:ColA    ColB    TotalSales0   1   A,B 301   2   E   2000
随时随地看视频慕课网APP

相关分类

Python
我要回答