使用pandas合并列内容并在Excel同一单元格内换行的方案问询
Pandas合并两列分两行展示实现方案
针对需求,可根据使用场景选择以下两种实现方式:
方案1:同一单元格内换行(适合仅展示需求,保留原有行结构)
Excel单元格内识别的换行符为\n,合并时插入换行符后导出Excel时开启自动换行即可实现效果:
- 合并列逻辑调整
# 两列内容之间插入换行符 df1["Column 3"] = df1["Column 1"] + "\n" + df1["Column 2"]
- 导出Excel配置
import pandas as pd with pd.ExcelWriter("output.xlsx", engine="openpyxl") as writer: df1.to_excel(writer, index=False) worksheet = writer.sheets["Sheet1"] # 批量设置单元格自动换行,同时适配列宽 for col in worksheet.columns: max_len = 0 col_letter = col[0].column_letter for cell in col: # 开启自动换行 cell.alignment = cell.alignment.copy(wrap_text=True) # 计算列最大宽度 cell_len = len(str(cell.value)) if cell_len > max_len: max_len = cell_len worksheet.column_dimensions[col_letter].width = max_len + 2
导出后打开Excel,Column 3的内容会自动在同一单元格内分两行展示。
方案2:拆分插入新行(适合后续需要单条数据单独处理的场景)
如果需要每行仅展示一条内容,可将合并内容转为列表后拆分为多行:
# 把两列内容合并为列表类型 df1["Column 3"] = df1.apply(lambda x: [x["Column 1"], x["Column 2"]], axis=1) # 拆分列表为独立行 df_split = df1.explode("Column 3").reset_index(drop=True) # 导出即可,不需要额外格式配置 df_split.to_excel("output_split.xlsx", index=False)
该方案下原来的1行数据会拆分为2行,其余列的内容会在拆分后的两行复用,不需要其他列可自行删除。
内容的提问来源于stack exchange,提问作者Rocky5
相关产品推荐
相关产品推荐

