3 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
在已經(jīng)有字典的情況下,您可以使用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 指出的那樣,重命名接受兩個(gè)參數(shù)index并column允許獨(dú)立重命名:
df = df.rename(columns=d)
如果您知道要重命名的列的范圍,并且有一個(gè)新列名列表,您可以構(gòu)建一個(gè)字典rename:
l = ['five', 'six', 'seven', 'eight', 'nine']
df = df.rename(columns=dict(zip(range(5,9), l)))

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您不想使用renamewith a dict,正如您提到的,您也可以嘗試以這種方式重命名列:
column_names = list(df.columns)
column_names[4:8] = ['five', 'six', 'seven', 'eight']
df.columns = column_names
正如已經(jīng)提到的那樣,您不必使用dict. 您可以一次完成所有操作:
my_dict = {5: 'five', 6: 'six', 7: 'seven'} # etc.
df.rename(columns = my_dict, inplace = True)

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
建立在你陳述的前提下I don't want to enter the keys in the dictionary individually.:
您可以使用一個(gè)名為num2words.
從文檔:
num2words 是一個(gè)將數(shù)字轉(zhuǎn)換42為單詞的庫forty-two。
用法:
from num2words import num2words
num2words(10)
輸出:
ten
做pip install num2words
你的最終代碼應(yīng)該是:
from num2words import num2words
d = {i: num2words(i) for i in range(100)}
df = df.rename(d, axis=1)
添加回答
舉報(bào)