2016-06-15 3 views
3

내가처럼 보이는 DF가 : 나는 각 행 이름의 '_CAR_ADJ_DPS'요소를 제거 (행 이름을 이름을 변경하고 열 'ID를'그래서 이름을 변경하려고변경 dataframe 행 이름

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 보인다 포인터를 주면 감사하겠습니다.

많은 감사

난 당신이 ( pandas의 새로운 0.18.0을) rename_axisstr.split를 사용할 수 있다고 생각

답변

2

:

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