2017-09-06 13 views
-1

필자는 dicts 목록으로 저장된 다양한 매개 변수에서 측정 값 콜렉션을 DataFrame으로 변환했습니다. Python Pandas Reshape Dataframe

Initial data Jupyter output

import pandas as pd 
data = [{"Device": "A", "temperature": 0, "Load": 1, "Voltage": 5, "Measurement1": 0.1, "Measurement2": 0.9}, 
{"Device": "A", "temperature": 0, "Load": 2, "Voltage": 5, "Measurement1": 0.5, "Measurement2": 1.3}, 
{"Device": "A", "temperature": 40, "Load": 1, "Voltage": 5, "Measurement1": 0.2, "Measurement2": 1}, 
{"Device": "A", "temperature": 40, "Load": 2, "Voltage": 5, "Measurement1": 0.6, "Measurement2": 1.4}, 
{"Device": "B", "temperature": 0, "Load": 1, "Voltage": 5, "Measurement1": 0.3, "Measurement2": 1.1}, 
{"Device": "B", "temperature": 0, "Load": 2, "Voltage": 5, "Measurement1": 0.7, "Measurement2": 1.5}, 
{"Device": "B", "temperature": 40, "Load": 1, "Voltage": 5, "Measurement1": 0.4, "Measurement2": 1.2}, 
{"Device": "B", "temperature": 40, "Load": 2, "Voltage": 5, "Measurement1": 0.8, "Measurement2": 1.6}] 

df = pd.DataFrame(data, columns=['Device', 'temperature', 'Load', 'Voltage', 'Measurement1', 'Measurement2']) 
df 

desired structure의 스크린 샷이다.

아이디어가 꽤 비슷하고, 매개 변수로 열/색인/값을 가지고 있고, 별도의 전치/다시 색인 설정/설정 열이 있지만 피벗 테이블을 시도했지만 조합을 얻을 수 없습니다.

+0

죄송합니다. 이해가되지 않습니다. 입력 데이터로 출력을 추가 할 수 있습니까? – jezrael

+0

수정 된 데이터로 초기 게시물을 업데이트했습니다. – Lorant

답변

0

사용, set_index, Tstack :

df.set_index(['Load','Voltage','Device','temperature']).T.stack([0,1]) 

출력 :

(df.set_index(['Load','Voltage','Device','temperature']).T.stack([0,1]) 
     .rename_axis([None,None],1)) 

:

Device      A   B  
temperature     0 40 0 40 
      Load Voltage      
Measurement1 1 5  0.1 0.2 0.3 0.4 
      2 5  0.5 0.6 0.7 0.8 
Measurement2 1 5  0.9 1.0 1.1 1.2 
      2 5  1.3 1.4 1.5 1.6 

를 그리고, 당신이 그 열 인덱스 이름은 rename_axis를 추가하지 않으 출력 :

       A   B  
          0 40 0 40 
      Load Voltage      
Measurement1 1 5  0.1 0.2 0.3 0.4 
      2 5  0.5 0.6 0.7 0.8 
Measurement2 1 5  0.9 1.0 1.1 1.2 
      2 5  1.3 1.4 1.5 1.6 
관련 문제