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

Pandas DataFrame如何基于其他行的值替换部分行并调整列名?

适配任意position列数的两种实现方案

方案1:Python Pandas 简洁实现

直接利用pandas多级表头特性自动合并,不需要手动删行再挨个重命名:

import pandas as pd

# 读取时指定前两行为表头,自动处理分隔符前后空格
df = pd.read_csv("你的文件路径.csv", sep="|", header=[0, 1], skipinitialspace=True)
# 合并两级表头:第二级是position/result的就取第一级的列名,其余取第二级的位置名
df.columns = [
    col1 if col2.strip() in ("position", "result") else col1.strip()
    for col1, col2 in df.columns
]
# 清理冗余空列(原CSV末尾的|会生成空列)
df = df.dropna(axis=1, how="all").rename(columns=lambda x: x.strip())
# 导出结果
print(df.to_csv(sep="|", index=False))

方案2:大文件流式处理方案

如果文件体积很大,不需要加载全量数据,逐行处理即可:

  • 读第一行:按|分割、去空格、过滤空值,取索引1及之后的所有值存为位置列名列表
  • 读第二行:按|分割、去空格、过滤空值,取前2个值拼接上面的位置列表,得到最终表头
  • 从第三行开始直接输出原行内容即可

这个方案时间复杂度为O(n),内存占用仅为表头大小,无论position有多少列都可以自动适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:36:06