pandas DataFrame各行NaN数量不一致时如何按行执行ffill填充
实现该需求只需要调用pandas内置的前向填充方法,指定按行维度填充即可,具体代码如下:
步骤1:构造示例测试数据
import pandas as pd import numpy as np df = pd.DataFrame( data=[ [1, 2, 3, np.nan, np.nan, np.nan], [1, 2, 3, 4, np.nan, np.nan], [1, 2, 3, 4, 5, 6] ], columns=['A', 'B', 'C', 'D', 'E', 'F'] )
步骤2:按行执行前向填充
核心代码仅需一行:
df = df.ffill(axis=1)
这里的axis=1指定填充方向为横向(按行操作),会自动把每行中左侧的非空值向右填充后续的NaN值,执行后得到的结果和你要求的目标完全一致。
如果使用的是较早版本的pandas,也可以用fillna的等效写法:
df = df.fillna(method='ffill', axis=1)
内容的提问来源于stack exchange,提问作者Cranjis
相关产品推荐
相关产品推荐

