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

如何基于另一列类别条件使用Pandas ffill填充rate列?

按类别分组实现Pandas rate列的匹配前向填充

嘿,这个需求其实很好解决,核心就是按category分组后再执行前向填充,这样就能确保每个填充值都只来自对应类别的历史有效数据,不会出现跨类别填充的错误。

步骤1:构造示例数据(模拟你的场景)

先假设你的DataFrame长这样:

import pandas as pd

df = pd.DataFrame({
    'category': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
    'rate': [0.5, None, 0.6, None, 0.7, 0.8, None, None]
})

步骤2:执行分组前向填充

只需要一行代码就能搞定:

# 按category分组,对rate列应用ffill
df['rate'] = df.groupby('category')['rate'].ffill()

处理后的结果

执行完上面的代码后,你的DataFrame会变成这样:

categoryrate
A0.5
A0.5
A0.6
BNaN
B0.7
C0.8
C0.8
C0.8

补充说明

  • 如果某个类别的第一个值就是NaN,ffill不会填充它(因为没有前面的值可以拿来填充),如果需要处理这种情况,可以额外结合bfill(比如df.groupby('category')['rate'].ffill().bfill()),不过这取决于你的实际需求。
  • groupby的作用是把相同category的数据打包成独立的小组,每个小组内部单独执行前向填充,这就保证了填充值完全匹配对应的类别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:23:23