Pandas 汇总(累计和计数)列

Pandas to summarize (cum and count) columns

Dataframe 如下,我想总结这些列,例如:

我试过了pivot_table:

import pandas as pd
from io import StringIO

csvfile = StringIO(
"""Staff    Color   Sales   Spend   Transport
Amelia  Red 188 49  35
Elijah  Yellow  326 18  
James   Blue    378 10  
Benjamin    Red 144 34  45
Isabella    Red 269 10  
Lucas   Yellow  159 48  
Mason   Blue    496 48  20""")

df = pd.read_csv(csvfile, sep = '\t', engine='python')

df = df.pivot_table(index= None, \
                            values=['Sales', "Spend", "Transport"], \
                            aggfunc={'Sales':'sum','Spend':'sum','Transport':'count'})

print (df)

但错误显示:

ValueError: No group keys passed!

我也试过:

columns = ['sum of Sales','sum of Spend','count of Transport']
df_1 = pd.DataFrame(columns = columns)
df_1 = df_1.append({"sum of Sales":df.Sales.sum(),
                    "sum of Spend":df.Spend.sum(),
                    "count of Transport":df.Transport.count()}, ignore_index=True)

print (df_1)

看起来不错,但我想知道实现它的更好方法是什么。谢谢。

在你的情况下

df.agg({'Sales':'sum','Spend':'sum','Transport':'count'}).to_frame().T