按一列分组,找到两列pandas中的第一列

时间:2016-01-27 18:31:52

标签: python pandas group-by

我有一个数据框几何体,我需要按一列grpno.进行分组,然后选择第MaxOfcount percent列,第一列state code,并显示grpno.。我已将其重命名为FirstOfMaxOfState count percentFirstOfstate code

我的输入数据框:

      count percent  grpno. state code  MaxOfcount percent
0          14.78       1         CA               14.78
1           0.00       2         CA                0.00
2           0.00       2         FL                0.00
3           8.80       3         CA                8.80
4           0.00       6         NC                0.00
5           0.00       5         NC                0.00
6          59.00       4         MA               59.00

我的输出数据框:

      FirstOfMaxOfState count percent  state pool number FirstOfstate code
0                            14.78                  1                CA
1                             0.00                  2                CA
2                             8.80                  3                CA
3                            59.00                  4                MA
4                             0.00                  5                NC
5                             0.00                  6                NC

有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:0)

删除不需要的列,按grpno分组,取第一个值,并展平多索引:

df2 = df.drop('count percent', 1).groupby('grpno.').take([0]).reset_index(0)

重命名列:

mapping = {'state code':'FirstOfstate code' ,
           'grpno.': 'state pool number',
           'MaxOfcount percent': 'FirstOfMaxOfState count percent'}
df2.rename_axis(mapping, axis=1)

结果:

>>> df2

   state pool number  FirstOfMaxOfState count percent FirstOfstate code
0                  1                            14.78                CA
1                  2                             0.00                CA
3                  3                             8.80                CA
6                  4                            59.00                MA
5                  5                             0.00                NC
4                  6                             0.00                NC