数据框如下,我想总结列,如:
我试过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)
看起来不错,但我想知道实现它的更好方法是什么。谢谢。
答案 0 :(得分:2)
在你的情况下就做
df.agg({'Sales':'sum','Spend':'sum','Transport':'count'}).to_frame().T