You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame中通过方法链实现ffill(axis=1)填充列值

方法链实现DataFrame中b列缺失值用a列填充

这里提供几种符合方法链风格的实现方式,都能达到你要的效果:

方法1:使用assign() + fillna()

这是最直观的写法,直接在方法链中对b列进行缺失值填充:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    {"a": [1, 2, 3, 4], "b": [10, np.nan, np.nan, 40], "c": ["a", "b", "c", "d"]}
)

# 方法链形式实现填充
result = df.assign(b=lambda x: x['b'].fillna(x['a']))
print(result.to_markdown())

方法2:使用assign() + combine_first()

combine_first()会用传入的Series/DF填充当前列的缺失值,逻辑和需求完全匹配:

result = df.assign(b=lambda x: x['b'].combine_first(x['a']))

方法3:和原逻辑对齐的方法链写法

如果想保留你原来用ffill(axis=1)的逻辑,同样可以包装成方法链:

result = df.assign(b=lambda x: x[['a', 'b']].ffill(axis=1)['b'])

以上三种方式运行后都会得到相同的结果:

abc
0110a
122b
233c
3440d

内容的提问来源于stack exchange,提问作者divingTobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:35:30