如何拆分含多组表头的CSV文件为多个DataFrame?
拆分带多层表头的CSV数据到不同变量
可以用Python的pandas库轻松实现这个需求,步骤如下:
1. 读取带多层表头的CSV文件
先确保已安装pandas,读取文件时指定表头所在的行(假设你的多层表头是前2行,可根据实际情况调整header参数):
import pandas as pd # 读取CSV,header=[0,1]表示用第0、1行作为多层表头 full_df = pd.read_csv('your_large_data.csv', header=[0,1])
2. 按组拆分数据
通过表头的顶层分组名,筛选对应列并赋值给目标变量:
# 提取「Level and Distortion」组数据到变量a a = full_df.loc[:, full_df.columns.get_level_values(0) == 'Level and Distortion'] # 提取「THD Ratio」组数据到变量b b = full_df.loc[:, full_df.columns.get_level_values(0) == 'THD Ratio'] # 提取「Reference Waveform」组数据到变量c c = full_df.loc[:, full_df.columns.get_level_values(0) == 'Reference Waveform']
3. 可选:整理拆分后的表头
如果需要简化拆分后的表头(比如去掉重复的组名前缀),可以重置表头层级:
# 以变量a为例,仅保留子层级表头 a.columns = a.columns.get_level_values(1)
注意事项
- 确认CSV文件中的分组名和代码中的字符串完全匹配(包括大小写、空格、符号),否则会筛选不到数据
- 如果你的多层表头超过2行,调整
header参数为对应行数的列表(比如header=[0,1,2]),同时在get_level_values中指定对应的层级索引(0为最顶层)
内容的提问来源于stack exchange,提问作者fauzan-mhd
相关产品推荐
相关产品推荐

