Python 熊猫将多重索引的所有级别都转换为另一种类型

Python 熊猫将多重索引的所有级别都转换为另一种类型,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个多索引,我想把它的所有级别都转换成浮动 我正在做以下工作: my_dataframe.index.map(lambda i: (float(i[0]), float(i[1]))) 然而,如果我有很多级别,这似乎不是很好的“缩放” 我试过这个: my_dataframe.index.astype(np.float, copy=False) 但它失败时出现类型错误: TypeError: Setting <class 'pandas.core.in

我有一个多索引,我想把它的所有级别都转换成浮动

我正在做以下工作:

        my_dataframe.index.map(lambda i: (float(i[0]), float(i[1])))
然而,如果我有很多级别,这似乎不是很好的“缩放”

我试过这个:

        my_dataframe.index.astype(np.float, copy=False)
但它失败时出现
类型错误

TypeError: Setting <class 'pandas.core.indexes.multi.MultiIndex'> dtype to anything other than object is not supported
TypeError:不支持将dtype设置为对象以外的任何对象
实现这一点的最佳/最简单的方法是什么?

您可以使用选择的级别,转换为浮动,最后:

a = my_dataframe.index.get_level_values(0).astype(float)
b = my_dataframe.index.get_level_values(1).astype(float)

my_dataframe.index = [a,b]
或:

另一个解决方案包括:

或:


提供数据示例。谢谢,我忘记了
获取级别值
:)
my_dataframe = my_dataframe.set_index([a,b])
a = my_dataframe.index.levels[0].astype(float)
b = my_dataframe.index.levels[1].astype(float)
my_dataframe.index = my_dataframe.index.set_levels([a,b])
my_dataframe = my_dataframe.set_index(my_dataframe.index.set_levels([a,b]))