将字符串类型的pandas数据帧,三级MultiIndex转换为数字类型对象
Converting a pandas dataframe with a string type, three level MultiIndex into numeric type objects
我有一个 pandas 数据框,其中包含一个三级 MultiIndex,如下所示:
gene TIMP2 VEGFA VIM
2 TGFb 0.1 0.035655 0.876214 -0.158406
1 0.087623 1.049764 0.039158
10 0.054119 0.887348 -0.052608
24 TGFb 0.1 0.148470 0.565379 0.157153
1 0.233250 0.540806 0.206030
10 0.378658 0.861429 0.132580
48 TGFb 0.1 -0.203006 0.359409 -0.144209
1 -0.068495 0.845802 -0.093910
10 -0.105295 0.676591 -0.166819
6 TGFb 0.1 0.060129 1.766071 0.097548
1 0.075760 1.656494 0.026664
10 -0.029685 1.284003 -0.008032
NaN NaN 2.000000 12.000000 0.000000
唯一的问题是,由于我构建 MultiIndex 的方式(嵌入到较大的代码中,因此很难粘贴到此处),索引中的数字是字符串。如何将外部级别转换为整数,将内部级别转换为浮点数?这听起来微不足道,但我很难找到解决方案。谢谢
这应该为您完成:
df.index = df.index.set_levels(idx.levels[0].astype(int), level=0) \
.set_levels(idx.levels[2].astype(float), level=2)
我有一个 pandas 数据框,其中包含一个三级 MultiIndex,如下所示:
gene TIMP2 VEGFA VIM
2 TGFb 0.1 0.035655 0.876214 -0.158406
1 0.087623 1.049764 0.039158
10 0.054119 0.887348 -0.052608
24 TGFb 0.1 0.148470 0.565379 0.157153
1 0.233250 0.540806 0.206030
10 0.378658 0.861429 0.132580
48 TGFb 0.1 -0.203006 0.359409 -0.144209
1 -0.068495 0.845802 -0.093910
10 -0.105295 0.676591 -0.166819
6 TGFb 0.1 0.060129 1.766071 0.097548
1 0.075760 1.656494 0.026664
10 -0.029685 1.284003 -0.008032
NaN NaN 2.000000 12.000000 0.000000
唯一的问题是,由于我构建 MultiIndex 的方式(嵌入到较大的代码中,因此很难粘贴到此处),索引中的数字是字符串。如何将外部级别转换为整数,将内部级别转换为浮点数?这听起来微不足道,但我很难找到解决方案。谢谢
这应该为您完成:
df.index = df.index.set_levels(idx.levels[0].astype(int), level=0) \
.set_levels(idx.levels[2].astype(float), level=2)