【问题标题】:Renaming index with a list in Python [duplicate]在Python中使用列表重命名索引[重复]
【发布时间】:2022-01-18 07:03:17
【问题描述】:

假设我有以下数据:

import pandas as pd
import numpy as np

data = np.random.randint(10, size=(3,3))

columns = ['Score A','Score B','Score C']
index = ['18','25','30']

df = pd.DataFrame(data=data,index=index,columns=columns)

print(df)

我希望索引改为显示“18 岁”、“25 岁”和“30 岁” 所以我做了一些操作并创建了列表 ['Age 18', 'Age 25', 'Age 30'] 有没有一种快速的方法可以根据我的新列表重命名索引,而无需我使用字典,这需要我将所有旧索引一个一个映射到新索引?

【问题讨论】:

  • df.index = ['Age '+i for i in df.index]
  • 在所示示例中,您的索引已经是一个字符串,因此您只需执行df.index = 'Age ' + df.index。或者df.index = 'Age ' + df.index.astype(str),如果您在真实案例中确实有数字。 rename 也很有帮助,并且无论 df = df.rename('Age {}'.format) 类型如何都可以工作(尽管它可能会很昂贵,因为它返回 DataFrame 的副本)或者与 index.map 类似 -> df.index = df.index.map('Age {}'.format)

标签: python pandas list dataframe indexing


【解决方案1】:

试试add_prefix

 df = df.T.add_prefix('Age ').T

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    相关资源
    最近更新 更多