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

时间:2017-02-06 19:29:24

标签: python pandas dataframe group-by

我正在尝试根据索引提取列的最大值。我有这个系列:

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()

1 个答案:

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