【发布时间】:2021-03-23 00:57:32
【问题描述】:
我在 Python 中有一个如下所示的 DataFrame,它显示了客户的协议:
df = pd.DataFrame({"ID" : [1,2,1,1,3],
"amount" : [100,200,300,400,500],
"status" : ["active", "finished", "finished",
"active", "finished"]})
我需要用 Python 编写 FUNCTION,它将计算: 1.每个“ID”的合约数量(NumAg)和金额(AmAg) 2.每个ID的数量(NumAct)和活跃(AmAct)合约数量 3.每个ID的数量(NumFin)和已完成(AmFin)合约的数量
为了更精确,我需要通过这个函数创建 DataFrame,如下所示:
【问题讨论】:
-
如果太复杂,只需将其分解为单行代码即可。
-
但是如何?你能推荐点什么吗?
-
前 2 个例如:
groupby('ID').agg(NumAg = pd.NamedAgg(column='amount',aggfunc='count'),AmAg = pd.NamedAgg(column='amount',aggfunc='sum')) -
谢谢,您对第 3 点有什么想法吗?
标签: python pandas dataframe aggregation