问题描述
尝试这个:
In [110]: (df.groupby('Company Name')
.....: .agg({'Organisation Name':'count', 'Amount': 'sum'})
.....: .reset_index()
.....: .rename(columns={'Organisation Name':'Organisation Count'})
.....: )
Out[110]:
Company Name Amount Organisation Count
0 Vifor Pharma UK Ltd 4207.93 5
或者如果您不想重置索引:
df.groupby('Company Name')['Amount'].agg(['sum','count'])
要么
df.groupby('Company Name').agg({'Amount': ['sum','count']})
演示:
In [98]: df.groupby('Company Name')['Amount'].agg(['sum','count'])
Out[98]:
sum count
Company Name
Vifor Pharma UK Ltd 4207.93 5
In [99]: df.groupby('Company Name').agg({'Amount': ['sum','count']})
Out[99]:
Amount
sum count
Company Name
Vifor Pharma UK Ltd 4207.93 5
解决方法
我有一个看起来像这样的数据框:
Company Name Organisation Name Amount
10118 Vifor Pharma UK Ltd Welsh Assoc for Gastro & Endo 2700.00
10119 Vifor Pharma UK Ltd Welsh IBD Specialist Group,169.00
10120 Vifor Pharma UK Ltd West Midlands AHSN 1200.00
10121 Vifor Pharma UK Ltd Whittington Hospital 63.00
10122 Vifor Pharma UK Ltd Ysbyty Gwynedd 75.93
如何求和Amount
并计算Organisation Name
,以得到一个看起来像这样的新数据框?
Company Name Organisation Count Amount
10118 Vifor Pharma UK Ltd 5 11000.00
我知道如何求和 或 计数:
df.groupby('Company Name').sum()
df.groupby('Company Name').count()
但不是两者都要做!