2017-08-28 38 views
1

我有一个1000列的熊猫数据框。假设我想将列100至499重命名为['x1','x2',...,'x400']。有没有办法在熊猫数据框中做到这一点,而不必单独重命名每一列?我知道如何做多重命名我只想弄清楚是否可以做一系列的列而不需要指定每个列的名称(我不想在dataframe.columns中单独编写1000个列名)。如何重命名熊猫中的一批列?

回答

3

创建字典,然后再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 
+1

欢迎回来〜:) – Wen

+0

谢谢:)文 – jezrael

0

你可以尝试这样的:

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