3 回答
TA贡献2037条经验 获得超6个赞
在已经有字典的情况下,您可以使用rename映射到新的轴值:
df = pd.DataFrame(columns=range(10))
d = {5:'five', 6:'six', 7:'seven', 8:'eight'}
df = df.rename(d, axis=1)
# Index([0, 1, 2, 3, 4, 'five', 'six', 'seven', 'eight', 9], dtype='object')
或者,正如@ch3ster 指出的那样,重命名接受两个参数index并column允许独立重命名:
df = df.rename(columns=d)
如果您知道要重命名的列的范围,并且有一个新列名列表,您可以构建一个字典rename:
l = ['five', 'six', 'seven', 'eight', 'nine']
df = df.rename(columns=dict(zip(range(5,9), l)))
TA贡献1765条经验 获得超5个赞
如果您不想使用renamewith a dict,正如您提到的,您也可以尝试以这种方式重命名列:
column_names = list(df.columns)
column_names[4:8] = ['five', 'six', 'seven', 'eight']
df.columns = column_names
正如已经提到的那样,您不必使用dict. 您可以一次完成所有操作:
my_dict = {5: 'five', 6: 'six', 7: 'seven'} # etc.
df.rename(columns = my_dict, inplace = True)
TA贡献1784条经验 获得超2个赞
建立在你陈述的前提下I don't want to enter the keys in the dictionary individually.:
您可以使用一个名为num2words.
从文档:
num2words 是一个将数字转换42为单词的库forty-two。
用法:
from num2words import num2words
num2words(10)
输出:
ten
做pip install num2words
你的最终代码应该是:
from num2words import num2words
d = {i: num2words(i) for i in range(100)}
df = df.rename(d, axis=1)
添加回答
举报