熊猫总结(暨和计数)列

时间:2021-05-12 04:16:05

标签: pandas dataframe pivot

数据框如下,我想总结列,如:

enter image description here

enter image description here

我试过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)

enter image description here

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

1 个答案:

答案 0 :(得分:2)

在你的情况下就做

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