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

Pandas如何去除重复列名并将重复列的唯一行值追加到现有列

解决方案

你遇到的是观测数据按重复块存储的典型场景,不需要直接转置,按块分组后透视即可得到结构规整的表:

处理逻辑

  • 首先给每一组重复的观测块(每5行一个块,以Date行开头)打分组标签
  • 将多列观测值先转为长格式,兼容不同实验列数不同的情况
  • 以观测类型为列名做透视,直接得到每一条观测的完整字段,无重复列名

代码示例

import pandas as pd

# 读取数据,默认第一行为表头
df = pd.read_excel("你的数据文件路径.xlsx")
# 重命名第一列为观测类型字段
df = df.rename(columns={df.columns[0]: "obs_type"})

# 1. 给每一组重复的观测块打分组ID,每遇到Date行就归为新的一组
df["group_id"] = (df["obs_type"] == "Date").cumsum()

# 2. 将多列观测值转为长格式
df_long = df.melt(id_vars=["obs_type", "group_id"], var_name="col_id", value_name="obs_value")

# 3. 透视生成规整表,自动去重列名
df_res = df_long.pivot(
    index=["group_id", "col_id"],
    columns="obs_type",
    values="obs_value"
).reset_index(drop=True)

处理效果

最终得到的df_res列名为Date、Arm movement、Leg movement、Head movement、Time,无重复列,每一行对应一个样本的全部观测值,可直接按列做后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:57:02