Ced*_* H. 5 python python-3.x pandas
我有一个多索引,我想将其所有级别转换为浮动。
我正在做以下事情:
my_dataframe.index.map(lambda i: (float(i[0]), float(i[1])))
Run Code Online (Sandbox Code Playgroud)
但是,如果我有很多级别,这似乎不能很好地“扩展”。
我试过这个:
my_dataframe.index.astype(np.float, copy=False)
Run Code Online (Sandbox Code Playgroud)
但它失败了TypeError
:
TypeError: Setting <class 'pandas.core.indexes.multi.MultiIndex'> dtype to anything other than object is not supported
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳/最简单的方法是什么?
您可以用于get_level_values
选择级别,转换为float
s 和 last :
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]
Run Code Online (Sandbox Code Playgroud)
或者:
my_dataframe = my_dataframe.set_index([a,b])
Run Code Online (Sandbox Code Playgroud)
另一个解决方案MultiIndex.set_levels
:
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])
Run Code Online (Sandbox Code Playgroud)
或者:
my_dataframe = my_dataframe.set_index(my_dataframe.index.set_levels([a,b]))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1713 次 |
最近记录: |