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

Pandas中基于前一行数据补全厂商字段的技术求助

解决Pandas中车型数据的厂商信息补全问题

你的思路方向是对的,但之前的代码只处理了每个厂商下的第一行车型,没法覆盖后续的车型行。核心问题是需要把识别出的厂商值持续向下填充,直到遇到下一个新的厂商为止。

解决方案代码

替换你原来的df['manufacturor'] = ...那行代码,改用下面的逻辑:

# 第一步:识别厂商行(firstYear和style都是NaN的行),提取对应的厂商名称,其他行设为NaN
df['manufacturor'] = np.where((df['firstYear'].isna()) & (df['style'].isna()), df['Make/Model'], np.nan)
# 第二步:向前填充(ffill),把厂商值填充到下面所有的车型行
df['manufacturor'] = df['manufacturor'].ffill()

逻辑解释

  1. 识别厂商行:通过(df['firstYear'].isna()) & (df['style'].isna())判断哪些行是厂商行(因为厂商行的firstYear和style都是空值),把这些行的Make/Model值放到manufacturor列,其他行暂时设为NaN。
  2. 向前填充:ffill()方法会把每一个非NaN的厂商值,持续填充到它下面所有的NaN行,直到遇到下一个新的厂商值为止。这样就能给每个厂商下的所有车型都补上对应的厂商信息了。

验证结果

运行完上面的代码后,你的DataFrame的manufacturor列会呈现如下效果:

Make/Modelmanufacturor
FORDFORD
BRONCOFORD
MAVERICKFORD
MUSTANGFORD
HONDAHONDA
CIVICHONDA
CR-VHONDA
......

这样就完美解决了所有车型行的厂商信息补全问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 09:27:32