这是我的 Dataframe :
df = pd.DataFrame({'a': [100, 103, 101, np.nan, 105, 107, 100]})
这就是我想要的输出结果:
a b
0 100.0 100
1 103.0 103
2 101.0 103
3 NaN 103
4 105.0 105
5 107.0 107
6 100.0 107
我想创建列b
,它接受列a
的值,并将它们替换为列顶部的最大值。
例如,当a
中有103时,我想将所有值更改为103,直到a
列中有更大的数字,这就是为什么第2行和第3行更改为103,并且由于第4行中有大于103的数字,我想将其放入b
列中,直到a
列中有更大的数字。
我在stackoverflow上试过几个帖子,其中一个是answer,但是我还是不知道怎么做。
1条答案
按热度按时间oogrdqng1#
使用
Series.cummax
,并将之前非NaN
的缺失值替换为ffill
:如果真实的数据中可能,第一个值为
NaN
: