我有一个数据框如下:
Date User Tradetype Cost
2022-01-01 User1 Sell $1
2022-01-01 User1 Buy $2
2022-01-01 User1 Sell $0
2022-01-01 User2 Buy $1
2022-01-01 User2 Sell $1
我希望以这样一种方式聚合它,得到以下输出
User Date Tradetype Count TotalCost
User1 2022-01-01 Buy 2 $2
User1 2022-01-01 Sell 2 $2
User2 2022-01-01 Buy 1 $1
User2 2022-01-01 Sell 1 $1
我已经尝试了df.groupby('User')
,但不知道如何进一步进行,因为Tradetype
也必须聚合。任何关于如何在pandas
中实现这一点的输入?谢谢!
4条答案
按热度按时间kxkpmulp1#
这应该行得通:
结果:
5ssjco0h2#
df.groupby(['User','Tradetype']).agg(['sum','count'])
可以对user和tradetype列进行分组,并应用count和sum函数
gorkyyrv3#
使用您提供的 Dataframe :
下面是一种使用Pandas pipe和assign以及Python的strip和f-strings的方法:
然后:
iecba09b4#
(df.groupby(['Date','User','Tradetype '])
['Cost'].agg(['count','sum']).reset_index()
)