【发布时间】: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