kon*_*wka 3 python dataframe pandas fillna
假设我有一个如下所示的数据框:
df =
0 1 2
0 1.0 2.0 3.0
1 4.0 5.0 NaN
2 6.0 NaN NaN
Run Code Online (Sandbox Code Playgroud)
然后可以使用df.fillna(method='ffill', axis=1)
来获得:
0 1 2
0 1.0 2.0 3.0
1 4.0 5.0 5.0
2 6.0 6.0 6.0
Run Code Online (Sandbox Code Playgroud)
即我向前填充行。但是,现在我有一个数据框-1
而不是np.nan
. Pandas 的replace
函数也可以使用method='ffill'
,但replace()
不接受轴参数,因此要获得与上面相同的结果,我需要调用df.T.replace(-1, method='ffill').T
. 由于转置非常昂贵(特别是考虑到我正在处理多个千兆字节的数据帧),因此这不是一个选择。我怎样才能达到想要的结果?
使用mask
和ffill
df.mask(df.eq(-1)).ffill(axis=1)
0 1 2
0 1.0 2.0 3.0
1 4.0 5.0 5.0
2 6.0 6.0 6.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1959 次 |
最近记录: |