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

如何用Python Pandas或Tableau拆分Excel中多级结构的单列?

三级结构列拆分(Project/Task/Subtask)解决方案

方法一:Python Pandas 处理

直接通过字符串拆分和逻辑判断拆分三级结构,代码示例如下:

import pandas as pd

# 读取目标Excel文件
df = pd.read_excel("your_file.xlsx")
# 替换成你的实际文件名和路径

# 按`.`拆分层级列,生成临时拆分列
split_parts = df["层级列名"].str.split(".", expand=True)
# 替换成Excel中存储三级结构的列名

# 生成Project列:取第一部分
df["Project"] = split_parts[0]

# 生成Task列:仅当存在第二部分时,拼接Project和任务后缀
df["Task"] = split_parts.apply(
    lambda row: f"{row[0]}.{row[1]}" if row[1] is not None else "",
    axis=1
)

# 生成Subtask列:仅当存在第三部分时,拼接完整三级结构
df["Subtask"] = split_parts.apply(
    lambda row: f"{row[0]}.{row[1]}{row[2]}" if row[2] is not None else "",
    axis=1
)

# 可选:过滤掉仅包含Project的行(如果只需要带Subtask的记录)
# df = df[df["Subtask"] != ""]

# 保存处理后的文件
df.to_excel("split_result.xlsx", index=False)

逻辑说明

  • 拆分后第一部分始终是项目编号(如AA201)
  • 第二部分存在时,拼接成完整任务编号(如AA201.01)
  • 第三部分存在时,拼接成完整子任务编号(如AA201.0101)
  • 无对应层级的列会留空,完全匹配目标格式

方法二:Tableau 直接处理(适合仪表板数据源)

无需导出预处理,直接在Tableau中通过计算字段实现拆分:

步骤1:拆分原始列

  1. 连接Excel数据源后,找到存储三级结构的列
  2. 右键该列 → 选择拆分,按默认的.分隔符拆分,生成层级列名-拆分1、层级列名-拆分2、层级列名-拆分3三个临时列

步骤2:创建计算字段

  1. Project 计算字段:
[层级列名-拆分1]
  1. Task 计算字段:
IF NOT ISNULL([层级列名-拆分2]) THEN
  [层级列名-拆分1] + "." + [层级列名-拆分2]
ELSE
  NULL
END
  1. Subtask 计算字段:
IF NOT ISNULL([层级列名-拆分3]) THEN
  [层级列名-拆分1] + "." + [层级列名-拆分2] + [层级列名-拆分3]
ELSE
  NULL
END

步骤3:整理数据源

  • 将生成的三个计算字段拖入数据源面板,即可得到符合要求的三级结构列
  • 后续可直接用这些字段构建仪表板

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:15:19