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

如何在Python中读取CSV文件,还原含df1、df2的字典并保留分位数索引

读取CSV文件并还原为指定格式的字典

问题背景

此前将包含df1、df2的字典保存为CSV文件,文件内容如下:

,,df1,df2
quantile_10,h0,0.03636844456195831,0.105098
quantile_10,h5,0.0654495671391487,0.108322
quantile_10,h10,0.10933497846126557,0.113496
quantile_10,h15,0.1400846481323242,0.119098
quantile_10,h20,0.1513956755399704,0.068324
quantile_10,h25,0.11640003025531769,0.017974
quantile_10,h30,0.026758757233619694,9.4e-05
quantile_10,h35,0.0020915842149406673,0.0
quantile_20,h0,0.05211468040943147,0.130436
quantile_20,h5,0.08270514607429505,0.125416
quantile_20,h10,0.12569279968738556,0.125436
quantile_20,h15,0.14520362317562102,0.149596

需要读取该文件,还原为包含dict['df1']、dict['df2']的字典,且保留分位数(quantile_*)作为行索引的一部分。

解决方案

使用pandas库可以高效处理这类带多级索引的CSV文件,步骤如下:

1. 导入依赖库

import pandas as pd

2. 读取CSV文件

指定前两列为多级行索引,第一行为表头:

# 读取CSV,设置前两列为行索引
df = pd.read_csv('data.csv', index_col=[0, 1], header=0)

3. 拆分为目标字典

将DataFrame按列拆分,每个列对应字典的一个键,值为保留索引的Series:

result_dict = {col: df[col] for col in df.columns}

如果需要每个值为DataFrame而非Series,可修改为:

result_dict = {col: df[[col]] for col in df.columns}

验证结果

此时result_dict['df1']的行索引为多级结构(分位数+h标识),与原数据结构完全匹配,例如执行:

print(result_dict['df1'].head())

会得到输出:

quantile_10  h0     0.036368
             h5     0.065450
             h10    0.109335
             h15    0.140085
             h20    0.151396
Name: df1, dtype: float64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:35:29