pandas :在多索引数据框中转换索引类型 [英] pandas: convert index type in multiindex dataframe
本文介绍了 pandas :在多索引数据框中转换索引类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个多索引数据框:
Hi have a multiindex dataframe:
tuples = [('YTA_Q3', 1), ('YTA_Q3', 2), ('YTA_Q3', 3), ('YTA_Q3', 4), ('YTA_Q3', 99), ('YTA_Q3', 96)]
# Index
index = pd.MultiIndex.from_tuples(tuples, names=['Questions', 'Values'])
# Columns
columns = pd.MultiIndex.from_tuples([('YTA_Q3', '@')], names=['Questions', 'Values'])
# Data
data = [29.014949,5.0260590000000001,
6.6269119999999999,
1.3565260000000001,
41.632221999999999,
21.279499999999999]
df1 = pd.DataFrame(data=data, index=index, columns=columns)
如何将df索引的内部值转换为str?
How do I convert the inner values of the df's index to str?
我的尝试:
df1.index.astype(str)
返回TypeError
returns a TypeError
推荐答案
IIUC,您需要最后一级的Multiindex.您可以使用levels
:
IIUC you need the last level of Multiindex. You could access it with levels
:
df1.index.levels[-1].astype(str)
In [584]: df1.index.levels[-1].astype(str)
Out[584]: Index(['1', '2', '3', '4', '96', '99'], dtype='object', name='Values')
编辑
您可以使用multiIndex的set_levels
方法设置内部级别:
You could set your inner level with set_levels
method of multiIndex:
idx = df1.index
df1.index = df1.index.set_levels([idx.levels[:-1], idx.levels[-1].astype(str)])
这篇关于 pandas :在多索引数据框中转换索引类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文