【发布时间】:2018-03-22 16:38:58
【问题描述】:
我有一个按特定列计数和分组的 pandas 数据框。
import pandas as pd
df = pd.DataFrame({'x':list('aaabbbbbccccc'),'y':list('2225555577777'), 'z':list('1312223224432')})
#
df.groupby(['x','y','z'])['z'].count()
# or
df.groupby(['x','y','z'])['z'].agg(['count'])
# or
df.groupby(['x','y','z'])['z'].count().reset_index(name='counts')
结果是;
x y z counts
0 a 2 1 2
1 a 2 3 1
2 b 5 2 4
3 b 5 3 1
4 c 7 2 2
5 c 7 3 1
6 c 7 4 2
如何将结果转换为以下形式?
x y 1 2 3 4
0 a 2 2 0 1 0
1 b 5 0 4 1 0
2 c 7 0 2 1 2
【问题讨论】:
-
这也列出了执行此任务的策略。虽然不完全相同,但它应该证明是有帮助的。 stackoverflow.com/a/47152692/2336654
标签: python python-3.x pandas dataframe