2
a1..a111からインデックスを作成する方法はありますか?今はちょうど1.111です。アルファベットのインデックスプレフィックスを作る高速な方法
fruit = pd.Series(['aa'] * 50 + ['bb'] * 50 + [None] * 10, name='fruit', index=range(1,111))
a1..a111からインデックスを作成する方法はありますか?今はちょうど1.111です。アルファベットのインデックスプレフィックスを作る高速な方法
fruit = pd.Series(['aa'] * 50 + ['bb'] * 50 + [None] * 10, name='fruit', index=range(1,111))
あなたは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
...
...
別速く解決策はstring
にindex
値を変換し、a
を追加します:
fruit = pd.Series(['aa'] * 50 + ['bb'] * 50 + [None] * 10, name='fruit', index=range(1,111))
fruit.index = 'a' + fruit.index.astype(str)
タイミング:
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
使用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