我正在尝试根据索引提取列的最大值。我有这个系列:
Hour Values
1 0
1 3
1 1
2 0
2 5
2 4
...
23 3
23 4
23 2
24 1
24 9
24 2
我希望添加一个新列' Max Value'这将具有“'值”的最大值。每个值的列,基于索引(小时):
Hour Values Max Value
1 0 3
1 3 3
1 1 3
2 0 5
2 5 5
2 4 5
...
23 3 4
23 4 4
23 2 4
24 1 9
24 9 9
24 2 9
我可以在excel中做到这一点,但对熊猫来说是新手。我最接近的是这个沙哑的努力,这是我所拥有的,但我在第一个' =':
的语法错误df['Max Value'] = 0
df['Max Value'][(df['Hour'] =1)] = df['Value'].max()
答案 0 :(得分:5)
使用transform('max')方法:
In [61]: df['Max Value'] = df.groupby('Hour')['Values'].transform('max')
In [62]: df
Out[62]:
Hour Values Max Value
0 1 0 3
1 1 3 3
2 1 1 3
3 2 0 5
4 2 5 5
5 2 4 5
6 23 3 4
7 23 4 4
8 23 2 4
9 24 1 9
10 24 9 9
11 24 2 9