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

如何使用Pandas按订单组填充缺失的收货地址等字段值

使用Python Pandas填充同一订单下的缺失收货地址

你的订单数据格式如下:

order numbershipping addressitem
A123Canadaboots
A123nullsocks
A123nulllaces
B456Californiashirt

要实现同一订单下的null收货地址填充为该订单对应的有效地址,可以用以下两种简洁的Pandas方法:

方法1:按订单分组后向前填充(ffill)

这种方法先按订单号分组,然后对shipping address列使用向前填充,自动把同组内的非空值填充到后续的空值位置:

import pandas as pd

# 构造示例数据
data = {
    'order number': ['A123', 'A123', 'A123', 'B456'],
    'shipping address': ['Canada', pd.NA, pd.NA, 'California'],
    'item': ['boots', 'socks', 'laces', 'shirt']
}
df = pd.DataFrame(data)

# 按订单号分组,对收货地址列向前填充
df['shipping address'] = df.groupby('order number')['shipping address'].ffill()

print(df)

方法2:用transform提取每组的非空值填充

如果每组只有一个有效地址,也可以提取每组的第一个非空值,然后批量填充到同组的空值位置:

# 提取每组的第一个非空收货地址
fill_values = df.groupby('order number')['shipping address'].transform(lambda x: x.dropna().iloc[0])

# 填充空值
df['shipping address'] = df['shipping address'].fillna(fill_values)

print(df)

两种方法运行后都会得到处理后的结果:

order numbershipping addressitem
A123Canadaboots
A123Canadasocks
A123Canadalaces
B456Californiashirt

注意:如果你的数据中null是字符串类型的'null'而不是Pandas的缺失值(pd.NA/np.nan),需要先把字符串'null'转换为缺失值,再执行上述填充操作:

df['shipping address'] = df['shipping address'].replace('null', pd.NA)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 06:06:45