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

Pandas两列拆分与合并及特定pd.DataFrame布局可行性咨询

Pandas 列拆分合并与特殊布局实现

1. 列的拆分与合并

拆分列

要把一列拆成两列,最直接的方法是用str.split(),加上expand=True就能直接生成新列:

import pandas as pd

df = pd.DataFrame({"combined": ["apple,red", "banana,yellow", "grape,purple"]})
# 按逗号拆分,生成两列
df[["fruit", "color"]] = df["combined"].str.split(",", expand=True)

如果是按固定位置拆分,用str.slice():

# 假设combined列前5个字符是水果,后面是颜色
df["fruit"] = df["combined"].str.slice(0,5)
df["color"] = df["combined"].str.slice(5,)

合并列

把两列字符串合并成一列,str.cat()比直接相加更靠谱,能指定分隔符还能处理缺失值:

df = pd.DataFrame({"fruit": ["apple", "banana"], "color": ["red", "yellow"]})
# 用逗号连接两列
df["combined"] = df["fruit"].str.cat(df["color"], sep=",")

# 简单场景也可以直接字符串相加(注意列必须是字符串类型)
df["combined"] = df["fruit"] + "-" + df["color"]

2. 实现图中布局

从你给出的布局图来看,它包含类似合并单元格的层级结构。Pandas原生DataFrame是严格的二维表格,没有直接合并单元格的功能,但可以通过两种方式模拟:

用多级索引(MultiIndex)实现逻辑分组

如果是表头或行索引的层级关系,用多级索引就能实现类似的分组显示效果:

# 构建多级表头
cols = pd.MultiIndex.from_tuples([
    ("基本信息", "姓名"), ("基本信息", "年龄"),
    ("工作信息", "公司"), ("工作信息", "职位")
])
df = pd.DataFrame([["张三", 28, "XX科技", "工程师"], ["李四", 32, "YY集团", "产品经理"]], columns=cols)

在Jupyter Notebook或终端中显示时,同组的表头会自动合并展示,和图中的层级结构逻辑一致。

用Styler渲染可视化合并单元格

如果需要在导出的HTML或报表中看到实际的合并单元格样式,可以用Styler自定义样式:

def style_merged_cells(styler):
    # 设置表头层级居中,合并第一列的指定行
    styler.set_table_styles([
        {"selector": "th.level0", "props": [("text-align", "center")]},
        {"selector": "tbody tr:nth-child(1) td:nth-child(1)", "props": [("rowspan", "2")]}
    ])
    return styler

# 应用样式
df.style.pipe(style_merged_cells)

这种方式只改变可视化效果,DataFrame的底层数据结构还是标准的二维表格,不影响后续的数据处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:00:54