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

Python新手使用pandas合并数据集后如何实现指定字段按企业重复填充

实现方案

一、原有合并代码优化

你当前的合并代码存在2个可优化的问题,调整后运行更稳定:

  • 缺少os模块导入,直接运行会触发名称报错
  • pandas 2.0+版本已废弃DataFrame.append()方法,替换为pd.concat()性能更高,兼容性更好

优化后的合并代码如下:

import pandas as pd
import os

# 设置工作目录
cwd = r"C:\Users\justi\Documents\MyName\Analysis\Database"
files = os.listdir(cwd)
df_list = []

# 批量读取所有xlsx文件
for file in files:
    if file.endswith('.xlsx'):
        file_path = os.path.join(cwd, file)
        df_list.append(pd.read_excel(file_path))

# 合并所有数据
df = pd.concat(df_list, ignore_index=True)

二、指定字段重复填充实现

你的需求是同一企业对应的item no、item、category、category code四个字段统一填充,直接用分组填充逻辑即可实现,完全匹配你截图中的空值补全效果:

# 请替换为你数据集中对应企业的字段名
group_col = "company"
# 需要填充的目标字段
fill_cols = ["item no", "item", "category", "category code"]

# 同企业分组下,先向前填充再向后填充,覆盖所有空值
df[fill_cols] = df.groupby(group_col)[fill_cols].ffill().bfill()

# 如果同一企业下这四个字段值唯一,也可以用统一取首个有效值的方式填充
# df[fill_cols] = df.groupby(group_col)[fill_cols].transform(
#     lambda x: x.fillna(x.dropna().iloc[0]) if x.notna().any() else x
# )

# 导出最终结果
df.to_excel('newcombined.xlsx', index=False)

如果运行后仍存在未填充的空值,说明对应企业分组下这四个字段没有任何非空有效值,需要单独补充对应基础数据后再运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:36:02