Pandas:基于其他列值获取列的最大值

Pandas:基于其他列值获取列的最大值,pandas,pandas-groupby,calculated-columns,Pandas,Pandas Groupby,Calculated Columns,我有一个熊猫数据框,看起来像这样: ID date num 1 2018-03-28 3 1 2018-03-29 1 1 2018-03-30 4 1 2018-04-04 1 2 2018-04-03 1 2 2018-04-04 6 2 2018-04-10 3 2 2018-04-11 4 ID date maxnum num 1 2018-03-28 3 3 1 2018-03-29 3 1 1

我有一个熊猫数据框,看起来像这样:

ID  date      num
1   2018-03-28  3
1   2018-03-29  1
1   2018-03-30  4
1   2018-04-04  1
2   2018-04-03  1
2   2018-04-04  6
2   2018-04-10  3
2   2018-04-11  4
ID  date    maxnum  num
1   2018-03-28  3   3
1   2018-03-29  3   1
1   2018-03-30  4   4
1   2018-04-04  4   1
2   2018-04-03  1   1
2   2018-04-04  6   6
2   2018-04-10  6   3
2   2018-04-11  6   4
由以下代码创建:

import pandas as pd
df = pd.DataFrame({'ID': [1, 1, 1, 1, 2, 2, 2, 2], 'date': ['2018-03-28', 
'2018-03-29', '2018-03-30', '2018-04-04', '2018-04-03', '2018-04-04',
'2018-04-10', '2018-04-11'], 'num': [3,1,4,1,1,6,3,4]})
我想要的是创建一个名为“maxnum”的新列,该列中填充该行上的日期和所有早期日期的最大值num per ID。此列将如下所示:

ID  date      num
1   2018-03-28  3
1   2018-03-29  1
1   2018-03-30  4
1   2018-04-04  1
2   2018-04-03  1
2   2018-04-04  6
2   2018-04-10  3
2   2018-04-11  4
ID  date    maxnum  num
1   2018-03-28  3   3
1   2018-03-29  3   1
1   2018-03-30  4   4
1   2018-04-04  4   1
2   2018-04-03  1   1
2   2018-04-04  6   6
2   2018-04-10  6   3
2   2018-04-11  6   4
有人知道我如何正确有效地编写本专栏吗

提前谢谢

使用
cummax
(假设您的数据帧已按
date
排序,如果没有 运行遮罩线)

使用
cummax
(假设您的数据帧已按
date
排序,如果没有 运行遮罩线)


谢谢这就是我要找的函数。@LaurensWit happy codingThanks!这就是我一直在寻找的函数。@LaurensWit happy coding