2016-07-05 4 views
2

필터링 다른 열로 새로운 pandas.dataframe 열 확인 :나는 다음과 같은 형식으로 pandas.Dataframe 객체가

Symb  Bid  Ask 
ESU6  207000 207025 
YMU6  12793 12797 
ESU6  207025 207050 
YMU6  12795 12797 

을하지만 형식은 다음과 같이 할 객체를 다시 구성 할 :

Bid.ESU6  Ask.ESU6  Bid.YMU6  Ask.YMU6 
207000  207025  
          12793  12797 
207025  207050  
          12795  12797 

각 요소를 통과하는 for-loop없이 데이터를 다시 구성하는 쉬운 방법이 있습니까?

미리 감사드립니다.

답변

1

당신은 pivot_table 사용할 수 있습니다

df1 = df.pivot_table(columns='Symb', values=['Bid','Ask'], index=df.index) 
df1.sort_index(axis=1, level=1, inplace=True) 
df1.columns = ['.'.join(col) for col in df1.columns] 
df1.fillna('', inplace=True) 
print (df1) 
    Bid.ESU6 Ask.ESU6 Bid.YMU6 Ask.YMU6 
0 207000 207025     
1      12793 12797 
2 207025 207050     
3      12795 12797 
+0

큰 작품! 정말 고맙습니다! 당신이 대답하기 전에 나는 모든 기호를 순환하여 모든 열을 순환하는 다음과 비슷한 종류의 비슷한 방법을 알아 냈습니다. symb 기호 : for df.columns : df [col + '.' df [col] [df [ 'Symb'] == symb)] for df.columns : del df [col] 하지만 코드가 더 효율적이라고 생각합니다. 고맙습니다! – sos

관련 문제