2014-10-14 1 views
0

다음 테이블을 pandas DataFrame으로 가져 왔습니다. 성능 측정을위한 구성을 나타내는 다차원 인덱스 (file_type, server_count, file_count, thread_count, cacheclear_type)가 있습니다. 각 구성에 대해 5 회 실행합니다.팬더의 MultiIndex DataFrame에서 데이터 추출 및 플로팅

+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
|   |    |   |    |     | run_001 | run_002 | run_003 | run_004 | run_005 | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
| file_type | server_count | file_count | thread_count | cacheclear_type |   |   |   |   |   | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
| gor  | 01servers | 05files | 20threads | ccALWAYS  | 15.918 | 16.275 | 15.807 | 17.781 | 16.233 | 
|   | 08servers | 05files | 20threads | ccALWAYS  | 17.061 | 15.414 | 16.819 | 15.597 | 16.818 | 
| gorz  | 01servers | 05files | 20threads | ccALWAYS  | 12.285 | 11.218 | 12.009 | 14.122 | 10.991 | 
|   | 08servers | 05files | 20threads | ccALWAYS  | 9.881 | 9.405 | 9.322 | 10.184 | 9.924 | 
| gor  | 01servers | 10files | 20threads | ccALWAYS  | 17.322 | 17.636 | 16.096 | 16.484 | 16.715 | 
|   | 08servers | 10files | 20threads | ccALWAYS  | 17.167 | 17.666 | 15.950 | 18.867 | 16.569 | 
| gorz  | 01servers | 10files | 20threads | ccALWAYS  | 14.718 | 19.553 | 17.930 | 21.415 | 21.495 | 
|   | 08servers | 10files | 20threads | ccALWAYS  | 10.236 | 9.948 | 12.605 | 9.780 | 10.320 | 
| gor  | 01servers | 15files | 20threads | ccALWAYS  | 19.265 | 17.128 | 17.630 | 18.739 | 16.833 | 
|   | 08servers | 15files | 20threads | ccALWAYS  | 23.083 | 22.084 | 25.024 | 24.677 | 20.648 | 
| gorz  | 01servers | 15files | 20threads | ccALWAYS  | 15.401 | 28.282 | 28.727 | 24.645 | 27.509 | 
|   | 08servers | 15files | 20threads | ccALWAYS  | 10.307 | 12.217 | 13.005 | 12.277 | 12.224 | 
| gor  | 01servers | 20files | 20threads | ccALWAYS  | 23.744 | 20.539 | 21.416 | 22.921 | 22.794 | 
|   | 08servers | 20files | 20threads | ccALWAYS  | 35.393 | 36.218 | 35.949 | 35.157 | 37.342 | 
| gorz  | 01servers | 20files | 20threads | ccALWAYS  | 19.505 | 23.756 | 25.767 | 26.575 | 25.239 | 
|   | 08servers | 20files | 20threads | ccALWAYS  | 11.398 | 11.332 | 15.086 | 16.115 | 13.479 | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
나는 모든 GOR, 1servers, 20threads, ccALWAYS 구성을하고 XXfiles 구성 각각에 대해 하나의 데이터 포인트를 생성하고 싶습니다

. 그래서 저는 어떻게 든 DataFrame을 다음과 같이 만들고 싶습니다.

+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
|   |    |   |    |     | run_001 | run_002 | run_003 | run_004 | run_005 | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
| file_type | server_count | file_count | thread_count | cacheclear_type |   |   |   |   |   | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 
| gor  | 01servers | 05files | 20threads | ccALWAYS  | 15.918 | 16.275 | 15.807 | 17.781 | 16.233 | 
| gor  | 01servers | 10files | 20threads | ccALWAYS  | 17.322 | 17.636 | 16.096 | 16.484 | 16.715 | 
| gor  | 01servers | 15files | 20threads | ccALWAYS  | 19.265 | 17.128 | 17.630 | 18.739 | 16.833 | 
| gor  | 01servers | 20files | 20threads | ccALWAYS  | 23.744 | 20.539 | 21.416 | 22.921 | 22.794 | 
+-----------+--------------+------------+--------------+-----------------+---------+---------+---------+---------+---------+ 

어떻게하면됩니까?

df.query('file_type == "gor" & server_count == "01servers"').sortlevel(2) 
+0

그럼 내가 마지막으로 사용 dataframe를 필터링하는 방법을 알아 냈 : – StFS

+0

아무 것도 나오지 않으므로이 질문에 초점을 맞추기 위해 편집 할 것입니다. 데이터 필터링 만하는 방법. 난 음모에 대해서만 다른 질문을 추가했습니다 : http://stackoverflow.com/questions/26380957/plotting-a-line-plot-with-error-bars-and-datapoints-from-a-pandas-dataframe – StFS

답변

0

는 나는 다음과 같은 코드를 사용하여 문제의 두 번째 테이블처럼 보이게 얻기 위해 쿼리() 함수를 사용하여 데이터를 필터링 관리 쿼리 기능 : df.query ('file_type == "gor"& server_count == "08servers"') sortlevel (2)