繁体   English   中英

在python中更改索引名称

[英]change index name in 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'})

但是我想更改许多行的索引名称,也许是在循环中。 有人知道我该怎么做吗?

非常感谢!

您可以像在此答案中那样使用字符串操作,方法是将其转换为字符串,将其切片,然后将其转换回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')

如果您更喜欢数学解决方案(不转换为字符串),则可以执行以下操作:

import math
# ...
df.index = df.index % (pow(10, int(math.log(df.index, 10))))

...当您始终要删除第一位数字时。

如果要删除除最后三位之外的所有数字,它将变得更加简单:

df.index = df.index % 1000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM