我有一个数据帧表:
Test results | Make
P | BMW
F | VW
F | VW
P | VW
P | VW
P | VW
我想通过make和test结果分组输出这样的计数,包括两个原始列:
Test results | Make | count
P | BMW | 1
F | VW | 2
P | VW | 3
我目前正在做:
pass_rates = df.groupby(['Test Results','Make']).size()
但是当我需要它保留在原始结构中时,它会将make和test结果分组到一列
答案 0 :(得分:0)
您可以使用参数name
添加reset_index
:
名称:对象,默认无
与系列值
对应的列的名称
pass_rates = df.groupby(['Test Results','Make']).size().reset_index(name='count')
print pass_rates
Test Results Make count
0 F VW 2
1 P BMW 1
2 P VW 3
如果您想要禁用排序,请将参数sort=False
添加到groupby
:
排序:布尔值,默认 True
对组键进行排序。关闭它可以获得更好的性能。请注意,这不会影响每组内观察的顺序。 groupby保留每个组中的行顺序。
pass_rates = df.groupby(['Test Results','Make'], sort=False).size().reset_index(name='count')
print pass_rates
Test Results Make count
0 P BMW 1
1 F VW 2
2 P VW 3