我有一个类似于这样的数据框数组: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()
添加回答
举报
0/150
提交
取消