Pandas系列基于索引的列的最大值

war*_*nry 2 python group-by dataframe pandas

我试图根据索引提取列的最大值.我有这个系列:

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
Run Code Online (Sandbox Code Playgroud)

并且我希望根据索引(小时)添加一个新列"最大值",它将为每个值设置"值"列的最大值:

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
Run Code Online (Sandbox Code Playgroud)

我可以在excel中做到这一点,但我是熊猫新手.我最接近的是这个沙哑的努力,这是我所拥有的,但我在第一个'='上得到语法错误:

df['Max Value'] = 0
df['Max Value'][(df['Hour'] =1)] = df['Value'].max()
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 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
Run Code Online (Sandbox Code Playgroud)