我正在尝试确定对我的数据进行简单调整的最佳方法:
import pandas
dfn = pandas.DataFrame({
"A" : [ 'aaa', 'bbb', 'aaa', 'bbb' ],
"B" : [ 1, 10, 2, 30 ],
"C" : [ 2, 0, 3, 20 ] })
我想要的输出是一个数据帧,按A分组,B和C的总和和计数值,名称必须是精确的(Sum_B,Sum_C,Count),如下所示:
A Sum_B Sum_C Count
aaa 3 5 2
bbb 50 20 2
最快的方法是什么?
解决方法:
你可以使用.agg()功能:
In [227]: dfn.groupby('A').agg({'B':sum, 'C':sum, 'A':'count'}).rename(columns={'A':'count'})
Out[227]:
B count C
A
aaa 3 2 5
bbb 40 2 20
或者使用reset_index():
In [239]: dfn.groupby('A').agg({'B':sum, 'C':sum, 'A':'count'}).rename(columns={'A':'count'}).reset_index()
Out[239]:
A B count C
0 aaa 3 2 5
1 bbb 40 2 20
PS这是0700到@evan54提供的示例
标签:python,dataframe,group-by,pandas,pivot-table
来源: https://codeday.me/bug/20190527/1166474.html