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

标签 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

我希望添加一个新列“最大值”,该列将根据索引(小时)为每个值提供“值”列的最大值:

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 中执行此操作,但我是 pandas 的新手。我最接近的是这个艰难的努力,这是我所得到的,但我在第一个 '=' 上遇到语法错误:

df['Max Value'] = 0
df['Max Value'][(df['Hour'] =1)] = df['Value'].max()

最佳答案

使用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

关于python - Pandas 系列基于索引的列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075777/

相关文章:

python - 使用通配符比较Python中的2个列表

python - 匹配多个条件的掩码数据框

python - pandas.series.apply 与 self bultt 功能不起作用

python - 在多索引上使用切片器

R 名称清理以获得正确的唯一变量

python - 使用 resample 为 pandas 数据框中的不同列聚合具有不同规则的数据

python - 如何在 python 中生成市场的分形图

python - 循环遍历 pandas 数据框行以应用条件的替代方案?

python - 如何删除从网站抓取的数据中的 "^M"?

python - 将复杂 SQL 转换为 Python Pandas 合并和/或连接