python - 分组数据框并获得总和和计数?

标签 python pandas dataframe group-by pandas-groupby

我有一个如下所示的数据框:

              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()

但不是如何做到这两点!

最佳答案

试试这个:

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

关于python - 分组数据框并获得总和和计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174155/

相关文章:

python - 如何从数据框中绘制条形图,其中x轴是列名称,图例是索引?

python - 如何在 python 中将 csv 的列值转换为多行

python - Pandas If Else 条件对多列

python - setup.py 引入非 Python github 存储库并将它们放在正确的目录中?

python - 如何使用别名类型进行模式匹配

python - 我们如何从字典列表的字典创建数据框

python - 使用 Pandas 对同一工作簿的多个工作表进行 pd.read_excel()

python - 在性能方面哪个更合适 - 多线程或多处理?

python - 将 DF 列中的部分值与指定列表进行匹配并检索频率

python - Int 太大而无法在执行 .astype(int) 时转换为 C long