我有一个 Dataframe ,它有一些nan
值。我想通过在Factor
列中添加前一行的更改来填充它们。 Dataframe 看起来像这样:
Value Col Factor
2022-11-30 0.020 84
2022-12-31 0.015 77
2023-01-31 NaN 90
2023-02-28 NaN 44
2023-03-31 NaN 39
为了填充df.iloc[2, 0]
,我想将df.iloc[1,0]
和Factor
列中的变化相加(在这种情况下是90-77 = 13)。预期的输出如下:
Value Col Factor
2022-11-30 0.020 84
2022-12-31 0.015 77
2023-01-31 13.015 90
2023-02-28 59.015 44
2023-03-31 64.015 39
我尝试了for循环,它可以工作。但是找不到一种方法,这是pandas函数,但填充nans行的行。我使用df['Factor'].diff(1)
得到Factor
列的差异,但不知道如何填充这些nans行。
2条答案
按热度按时间lnvxswe21#
您可以使用掩码
cumsum
:输出:
eufgjt7s2#
我认为上面的答案应该修改为使用groupby
所以我又杀鸡儆猴了
示例
df
我需要石斑鱼组
gr
编码
cumsum & ffill等按groupby
df