通过另一列pandas查找列组的最大值

时间:2016-01-20 18:49:00

标签: python pandas group-by max

我有一个包含2列的数据框,

count percent  grpno.
0          14.78       1
1           0.00       2
2           8.80       3
3           9.60       4
4          55.90       4
5           0.00       2
6           0.00       6
7           0.00       5
8           6.90       1
9          59.00       4

我需要获得列的最大值'计算百分比 '并按列分组' grpno。'。

虽然我尝试过同样的事情
geostat.groupby(['grpno.'], sort=False)['count percent'].max()

我得到输出

grpno.
1    14.78
2     0.00
3     8.80
4    59.00
6     0.00
5     0.00
Name: count percent, dtype: float64

但我需要输出为一个数据框,其列名被修改为' MaxOfcount percent'和' grpno。'任何人都可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:4)

def object_params
  params.require(:object).permit(:date, :name, :thing, :item).select { |k, v| !v.nil? }
end

您也可以在一行中完成:

res = df.groupby('grpno.')['count percent'].max().reset_index()
res.columns = ['grpno.', 'MaxOfcount percent']

   grpno.  MaxOfcount percent
0       1               14.78
1       2                0.00
2       3                8.80
3       4               59.00
4       5                0.00
5       6                0.00

答案 1 :(得分:0)

您可以将L <- lapply(names(data), function(d) transform(data[[d]], newvar=d)) names(L) <- names(data) 与参数groupby一起使用:

as_index=False