2016-06-15 15 views
3

私がどのように見えるDFがあります。私は、各行名の「_CAR_ADJ_DPS」要素を削除する(行名の名前を変更し、列「ID」のように、名前を変更しようとしています変更データフレームの行名

BBG.LON.123.S_CAR_ADJ_DPS 343.94325 
BBG.LON.436.S_CAR_ADJ_DPS 236.51530 

を私エニオン場合

pd.DataFrame(pd.Series(np.unique([row.split('_')[0] for row in df.rows]), name='id')) 

:私は成功を収めて次の行を使用してみましたが

  id 
BBG.LON.123.S 343.94325 
BBG.LON.436.S 236.51530 

:DFの結果は、のように見えます私はそれが評価されるポインタを与えることができます。

感謝

答えて

2

私はあなたが(pandas0.18.0に新)rename_axisstr.splitを使用することができると思う:

print (df) 
            a 
BBG.LON.123.S_CAR_ADJ_DPS 343.94325 
BBG.LON.436.S_CAR_ADJ_DPS 236.51530 

df.index = df.index.str.split('_').str[0] 
df = df.rename_axis('id') 
#if use pandas bellow 0.18.0 
#df.index.name = 'id' 

print (df) 
         a 
id      
BBG.LON.123.S 343.94325 
BBG.LON.436.S 236.51530 
1

また列としてエントリを抜くstr.extractに興味がある可能性があり:

In [11]: df[0].str.extract('(?P<A>.*)\.(?P<B>.*)\.(?P<C>\d+)\.(?P<D>.)_.*', expand=True) 
Out[11]: 
    A B C D 
0 BBG LON 123 S 
1 BBG LON 436 S 
関連する問題