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

如何使用Python Pandas DataFrame按订单编号填充对应设备名称

仓库报表自动化:用Pandas按订单编号替换缺失设备名称

输入数据

Order RefEQPT_NAME
10-3423ACNA
10-3423ACNA
10-3423ACPQLR22334
10-3423ACNA
10-3410ACNCRE267
10-3410ACNA
10-3410ACNA
10-3410ACNA

期望输出

Order RefEQPT_NAME
10-3423ACPQLR22334
10-3423ACPQLR22334
10-3423ACPQLR22334
10-3423ACPQLR22334
10-3410ACNCRE267
10-3410ACNCRE267
10-3410ACNCRE267
10-3410ACNCRE267

解决方案代码

import pandas as pd

# 读取报表数据(示例用字典生成,实际项目中用read_excel/read_csv加载文件)
data = {
    'Order Ref': ['10-3423AC']*4 + ['10-3410AC']*4,
    'EQPT_NAME': ['NA', 'NA', 'PQLR22334', 'NA', 'NCRE267', 'NA', 'NA', 'NA']
}
df = pd.DataFrame(data)

# 将报表中的字符串"NA"转换为Pandas识别的标准缺失值
df['EQPT_NAME'] = df['EQPT_NAME'].replace('NA', pd.NA)

# 按订单编号分组,用每组的有效设备名称填充所有缺失项
df['EQPT_NAME'] = df.groupby('Order Ref')['EQPT_NAME'].transform(
    lambda group: group.fillna(group.dropna().iloc[0])
)

# 输出处理后的结果
print(df)

关键说明

  • 核心逻辑:利用groupby按订单编号聚合,再通过transform保证填充后的数据与原DataFrame的行结构完全匹配,无需额外合并操作。
  • 前提假设:每个Order Ref仅对应唯一的有效EQPT_NAME,若同一订单下存在多个不同非NA值,需先添加去重或数据校验逻辑。

内容的提问来源于stack exchange,提问作者Hari The Flemish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:55:18