按两列分组并输出原始数据结构

时间:2016-03-03 12:08:09

标签: python pandas dataframe

我有一个数据帧表:

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结果分组到一列

1 个答案:

答案 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