创建/合并含复杂列结构的DataFrame:有无表头共存
构建双区域结构的DataFrame
要实现开头两列无表头数值、中间空行、后部带表头多列数据的DataFrame,用Python pandas可以这样操作:
核心思路
通过拼接不同数据块,用NaN填充空列/空行,再调整列名和样式匹配需求。
代码实现
import pandas as pd import numpy as np # 1. 第一部分:无表头的两列数值数据(补充空列对齐后续列数) part1 = pd.DataFrame([ [12, 34, np.nan], [56, 78, np.nan], [90, 12, np.nan] ]) # 2. 添加空行(这里设置3行) empty_rows = pd.DataFrame([[np.nan]*3]*3) # 3. 第二部分:先插入表头行,再添加数据 header_row = pd.DataFrame([["类别", "数值1", "数值2"]]) part2_data = pd.DataFrame([ ["A类", 100, 200], ["B类", 300, 400], ["C类", 500, 600] ]) # 4. 合并所有部分,清空列名实现无表头开头 final_df = pd.concat([part1, empty_rows, header_row, part2_data], ignore_index=True) final_df.columns = ["", "", ""] # 打印结果 print(final_df)
效果说明
运行后得到的DataFrame结构:
- 前3行:仅前两列有数值,无表头
- 中间3行:全空行
- 从第7行开始:显示自定义表头,后续为3列完整数据
如果在Jupyter环境中,还可以给表头行加加粗样式,更贴近示例效果:
display(final_df.style.set_table_styles([ {'selector': 'tr:nth-child(7)', 'props': [('font-weight', 'bold')]} ]))
内容的提问来源于stack exchange,提问作者ViciOus CircLe
相关产品推荐
相关产品推荐

