编写和读取具有多索引列的熊猫数据框

时间:2019-06-24 04:44:45

标签: python pandas

我正在尝试保存和加载一个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

我的问题是:

  • 是否有一种简单的保存和加载方法?

  • 如果没有,恢复我以前拥有的结构的最佳方法是什么

0 个答案:

没有答案