Pandas:根据多个标准组合数据项



我有一个我工作的公司内所有客户交易的数据库。

金额年20052017
ID 付款
A 向内 100 2
向外 200 2 2005
B 向内 100 7

您可以在groupby中使用列列表,如:

>>> df.groupby(['ID', 'Year', 'Month', 'Payment'])['Amount'].agg(['sum', 'count'])
sum  count
ID Year Month Payment            
A  2005 2     Inward   100      1
Outward  200      1
B  2017 7     Inward   100      1

进一步:

>>> df.assign(Amount=np.where(df['Payment'].eq('Outward'),
-df['Amount'], df['Amount'])) 
.groupby(['ID', 'Year', 'Month'])['Amount'].agg(['sum', 'count'])
sum  count
ID Year Month            
A  2005 2     -100      2
B  2017 7      100      1

最新更新