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

数据帧数组,获取每个数据帧的最大值并在 Pandas 中求和

数据帧数组,获取每个数据帧的最大值并在 Pandas 中求和

慕斯王 2022-05-19 14:31:19
我有一个类似于这样的数据框数组:index   date    profit  required    symbol  category0   2008-04-01  5.0 3   AA  cat11   2008-04-02  4.0 6   AA  cat12   2008-04-03  1.0 2   AA  cat13   2008-04-04  2.0 3   AA  cat14   2008-04-05  3.0 4   AA  cat15   2008-04-06  0.0 7   AA  cat1index   date    profit  required    symbol  category0   2008-04-01  1.0 3   AA  cat11   2008-04-02  1.0 2   AA  cat12   2008-04-03  1.0 2   AA  cat13   2008-04-04  2.0 3   AA  cat14   2008-04-05  3.0 2   AA  cat15   2008-04-06  3.0 1   AA  cat1index   date    profit  required    symbol  category0   2008-04-01  3.0 1   AB  cat11   2008-04-02  5.0 1   AB  cat12   2008-04-03  1.0 1   AB  cat13   2008-04-04  3.0 3   AB  cat14   2008-04-05  3.0 2   AB  cat15   2008-04-06  4.0 1   AB  cat1index   date    profit  required    symbol  category0   2008-04-01  5.0 1   AC  cat21   2008-04-02  4.0 1   AC  cat22   2008-04-03  3.0 12  AC  cat23   2008-04-04  2.0 1   AC  cat24   2008-04-05  3.0 1   AC  cat25   2008-04-06  4.0 1   AC  cat2每个数据框的符号和类别都是唯一的:我已将它们制成列,但它们是单个值,也可以这样使用。我想要做的是,对于每个符号和每个类别:所有利润的简单总和每个数据帧所需的最大值之和我可以用纯 Python 轻松地做到这一点(伪代码:有些事情变得更容易了):result = {}for df in dfs:    result[df.symbol]["profits_generated"] += df["profit"].sum()    result[df.symbol]["sum_of_max_required"] += df["required"].max()    # same for category...我的问题是:这可以翻译成熊猫吗?它会更有效还是更好读?我可以做利润总和部分,比如:pd.concat(dfs).groupby("symbol").sum()["profit"]但不是每个数据帧的最大值之和。
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以在添加keys时添加concat

pd.concat(dfs,keys=range(len(dfs))).groupby([df.index.get_level_values(0),df.symbol])["profit"].max().sum()


查看完整回答
反对 回复 2022-05-19
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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