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

Power BI中如何将相同值的行转换为新列?

人口数据格式转换解决方案

方法一:Excel Power Query(可视化操作)

  1. 选中原始数据区域,点击数据选项卡 → 从表格/区域,确认数据包含表头后进入Power Query编辑器。
  2. 选中年份列(唯一保留的标识列),右键选择逆透视其他列,此时数据会变成三列:年份、属性、值。
  3. 选中属性列,点击转换选项卡 → 拆分列 → 按分隔符,输入分隔符岁,选择“拆分为列”且拆分位置为“最右侧的分隔符”,得到属性.1和属性.2两列。
  4. 选中属性.1列,点击转换→格式→添加后缀,输入岁,然后将该列重命名为年龄段。
  5. 将属性.2列重命名为性别,删除原属性列,调整列顺序为年份、年龄段、性别、值。
  6. 点击主页选项卡 → 关闭并上载,转换后的数据就会导入到新的工作表中。

方法二:Python pandas(代码方式)

如果习惯用代码处理,用pandas可以快速完成转换:

import pandas as pd

# 读取原始数据(假设是CSV格式,根据实际文件类型调整)
df = pd.read_csv("人口原始数据.csv")

# 逆透视:将年份以外的列转为行
df_unpivot = df.melt(id_vars=["年份"], var_name="类别", value_name="数值")

# 拆分类别列,提取年龄段和性别/总人口信息
df_unpivot[["年龄段", "性别"]] = df_unpivot["类别"].str.extract(r"([\d-]+岁)(.*)")

# 整理列顺序并删除冗余列
df_final = df_unpivot[["年份", "年龄段", "性别", "数值"]].dropna()

# 保存转换后的数据
df_final.to_csv("人口转换后数据.csv", index=False)

如果原始列名格式和示例略有不同(比如分隔符不是“岁”),可以调整拆分规则,比如用空格或其他分隔符匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:36:34