2017-01-25 2 views

ответ

2

Вы можете использовать list comprehension:

fruit = pd.Series(['aa'] * 50 + ['bb'] * 50 + [None] * 10, name='fruit', 
        index=['a'+ str(i) for i in range(1,111)]) 

print (fruit) 
a1  aa 
a2  aa 
a3  aa 
a4  aa 
a5  aa 
a6  aa 
a7  aa 
a8  aa 
a9  aa 
... 
... 

Еще быстрее решение преобразовать index значения string и добавить a:

fruit = pd.Series(['aa'] * 50 + ['bb'] * 50 + [None] * 10, name='fruit', index=range(1,111)) 
fruit.index = 'a' + fruit.index.astype(str) 

Timings:

In [86]: %timeit pd.Series(['aa'] * 50000 + ['bb'] * 50000 + [None] * 10000, name='fruit', index=['a'+ str(i) for i in range(1,110001)]) 
10 loops, best of 3: 76 ms per loop 

In [87]: %timeit pd.Series(['aa'] * 50000 + ['bb'] * 50000 + [None] * 10000, name='fruit', index=range(1,110001)).rename_axis('a{}'.format) 
10 loops, best of 3: 84.9 ms per loop 

In [88]: %timeit jez() 
10 loops, best of 3: 46.5 ms per loop 
3

использование rename_axis

fruit.rename_axis('a{}'.format) 

a1  aa 
a2  aa 
a3  aa 
a4  aa 
a5  aa 
a6  aa 
a7  aa 
a8  aa 
a9  aa 
a10  aa 
a11  aa 
a12  aa 
Смежные вопросы