我正在尝试保存和加载pandas包含列的 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
Run Code Online (Sandbox Code Playgroud)
我现在尝试的是常规的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
Run Code Online (Sandbox Code Playgroud)
所以我已经觉得这个结构可能已经有点破损了。
当我使用前面的命令加载它时,我得到:
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
Run Code Online (Sandbox Code Playgroud)
如您所见,我丢失了 MultiIndex 列结构。
我也尝试加载
pd.read_csv("test.csv",index_col=0)
Run Code Online (Sandbox Code Playgroud)
但我仍然没有得到预期的结果:
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
Run Code Online (Sandbox Code Playgroud)
我的问题是:
有没有简单的保存和加载的方法?
如果没有,恢复我以前的结构的最佳方法是什么
小智 4
df.to_csv("test.csv", index=None)
df1 = pd.read_csv("test.csv", header=[0, 1] )
Run Code Online (Sandbox Code Playgroud)
回馈:
A B
sp start end sp start end
0 V5894_1 243 251 V5894_1 243 251
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2462 次 |
| 最近记录: |