为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻过高山走不出你 2021-09-01 14:50:37
我想总结两个数据帧的所有组合,DataFrame A         ColA    ColB   Sales           1       A      10           1       B      20           1       C      100           2       D      1000           2       E      2000DataFrame B         ColA    ColB             1      A,B          2      E我对 DataFrame 的预期结果是        ColA     ColB   TotalSales         1       A,B     30         2       E       2000
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您可以使用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  TotalSales

0     1  A,B          30

1     2    E        2000


查看完整回答
反对 回复 2021-09-01
?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以尝试选择位于数据框 B ColB 列中的数据框 A 行并添加所选的销售列


#df

 ColA    ColB   Sales

   1       A      10

   1       B      20

   1       C      100

   2       D      1000

   2       E      2000



df.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      E


df1['TotalSales'] = df1.ColB.str.split(',').apply(lambda x: df.loc[x]['Sales'].sum() )

出去:


ColA    ColB    TotalSales

0   1   A,B 30

1   2   E   2000


查看完整回答
反对 回复 2021-09-01
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号