为了账号安全,请及时绑定邮箱和手机立即绑定

使用索引重命名多个列

使用索引重命名多个列

30秒到达战场 2022-12-20 12:28:08
如何使用索引重命名数据框的多个列?例如,我想将位置 5、6、7、8 的列分别重命名为“五”、“六”、“七”、“八”。我不想单独输入字典中的键。
查看完整描述

3 回答

?
阿晨1998

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)))


查看完整回答
反对 回复 2022-12-20
?
POPMUISE

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)


查看完整回答
反对 回复 2022-12-20
?
一只斗牛犬

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)


查看完整回答
反对 回复 2022-12-20
  • 3 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信