我正在尝试保存和加载一个pandas
DataFrame,其中包括该列的MultiIndex(2级索引)。我在保存和加载DataFrame时遇到问题(如果可能,我希望在重新加载时具有完全相同的数据框)
我的数据框如下:
> df.head()
A B
sp start end sp start end
0 V5894_1 243 251 V5894_1 243 251
1 V5894_1 244 252 V5894_1 244 252
2 V5894_1 244 252 V5894_1 244 252
3 V3246_0 28 36 V3246_0 28 36
4 V3246_0 29 37 V3246_0 29 37
我现在尝试的是常规df.to_csv("test.csv")
,然后用df.read_csv("test.csv",index_col=[0,1])
加载。
保存后,.csv文件如下所示:
,A,A,A,B,B,B
,sp,start,end,sp,start,end
0,V5894_1,243,251,V5894_1,243,251
1,V5894_1,244,252,V5894_1,244,252
2,V5894_1,244,252,V5894_1,244,252
3,V3246_0,28,36,V3246_0,28,36
所以我已经觉得结构可能已经有点破损了。
使用上一个命令加载它时,我得到:
A.1 A.2 B B.1 B.2
A
NaN sp start end sp start end
0.0 V5894_1 243 251 V5894_1 243 251
1.0 V5894_1 244 252 V5894_1 244 252
2.0 V5894_1 244 252 V5894_1 244 252
3.0 V3246_0 28 36 V3246_0 28 36
如您所见,我丢失了MultiIndex列结构。
我也尝试加载
pd.read_csv("test.csv",index_col=0)
但是我仍然没有得到预期的结果:
A A.1 A.2 B B.1 B.2
NaN sp start end sp start end
0.0 V5894_1 243 251 V5894_1 243 251
1.0 V5894_1 244 252 V5894_1 244 252
2.0 V5894_1 244 252 V5894_1 244 252
3.0 V3246_0 28 36 V3246_0 28 36
我的问题是:
是否有一种简单的保存和加载方法?
如果没有,恢复我以前拥有的结构的最佳方法是什么