首页 > 解决方案 > 在python中更改索引名称

问题描述

我想将python中DataFrame中的索引名称重置为与第一个数字相同的名称。

例如,如果我的 DataFrame 是:

                 Sample 1                Sample 2
    2706   retinopathy positive        retinopathy negative
    2707   retinopathy negative        retinopathy negative
    2708   retinopathy positive        retinopathy positive

我希望它变成:

                Sample 1                 Sample 2
     706   retinopathy positive        retinopathy negative
     707   retinopathy negative        retinopathy negative
     708   retinopathy positive        retinopathy positive

我试过了:

ret_metadata.rename(index={2706: '706'})

但是,我想更改许多不同行的索引名称,可能是在一个循环中。有谁知道我该怎么做?

非常感谢!

标签: pythonindexingrename

解决方案


您可以通过将其转换为字符串、切片并将其转换回 int来使用此答案中的字符串操作。

df

        Sample_1                Sample_2
2706    retinopathy_positive    retinopathy_negative
2707    retinopathy_negative    retinopathy_negative
2708    retinopathy_positive    retinopathy_positive

(如果您不关心索引是数字,则可以跳过第二次演员表)

df.index=df.index.astype(str).str[1:].astype(int)

df

    Sample_1                Sample_2
706 retinopathy_positive    retinopathy_negative
707 retinopathy_negative    retinopathy_negative
708 retinopathy_positive    retinopathy_positive

df.index

Int64Index([706, 707, 708], dtype='int64')

推荐阅读