1
我有一個1000列的熊貓數據框。假設我想將列100至499重命名爲['x1','x2',...,'x400']。有沒有辦法在熊貓數據框中做到這一點,而不必單獨重命名每一列?我知道如何做多重命名我只想弄清楚是否可以做一系列的列而不需要指定每個列的名稱(我不想在dataframe.columns
中單獨編寫1000個列名)。如何重命名熊貓中的一批列?
我有一個1000列的熊貓數據框。假設我想將列100至499重命名爲['x1','x2',...,'x400']。有沒有辦法在熊貓數據框中做到這一點,而不必單獨重命名每一列?我知道如何做多重命名我只想弄清楚是否可以做一系列的列而不需要指定每個列的名稱(我不想在dataframe.columns
中單獨編寫1000個列名)。如何重命名熊貓中的一批列?
創建字典,然後再rename
:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(3,10)), columns=list('abcdefghij'))
print (df)
a b c d e f g h i j
0 8 8 3 7 7 0 4 2 5 2
1 2 2 1 0 8 4 0 9 6 2
2 4 1 5 3 4 4 3 7 1 1
a = df.columns[np.arange(4,8)]
b = ['x' + str(i) for i in np.arange(1,len(a)+1)]
d = dict(zip(a, b))
print (d)
{'h': 'x4', 'e': 'x1', 'f': 'x2', 'g': 'x3'}
df = df.rename(columns=d)
print (df)
a b c d x1 x2 x3 x4 i j
0 8 8 3 7 7 0 4 2 5 2
1 2 2 1 0 8 4 0 9 6 2
2 4 1 5 3 4 4 3 7 1 1
你可以嘗試這樣的:
t = iter(range(1, 401))
dataframe.columns = ['x'.format(next(t)) if 100 <= i <= 499 else x for i, x in enumerate(dataframe.columns, 1)]
歡迎回來〜:) – Wen
謝謝:)文 – jezrael