2016-06-16 1 views
1

내 시나리오를 설명해 드리겠습니다.panda의 DataFrame은 이에 적합합니까?

주어진 샘플 세트에 대한 여러 API에 대한 분석을 시도하고 있습니다. 결국, 나는 이것을 다음과 같이 생각하고있다.

2 차원 테이블 여기서 각 행은 각 샘플의 이름이고 각 열은 각 API의 이름이다. 이 표의 각각에서, 나는 쌍의 키 - 값 (예 : 'dog': 0.9)의 변수 번호를 갖게 될 것입니다. 그래서 0에서 N으로 할 수 있습니다 ... 요소의 수는 항상 2되지 않습니다 간단한 예제

________________________________________________________________________ 
|row/column | API 1  | API 2  | API 3  | API 4  | 
------------------------------------------------------------------------ 
|sample1 |{'dog':0.9, |{'cat':0.3, |{'dog':0.7, |{'cat':0.2, | 
|   |'animal': 0.8}|'mammal':0.4} |'mammal':0.3} |'animal':0.9}| 
------------------------------------------------------------------------ 
|sample2 |{'sun':0.6, |{'sun':0.7, |{'wind':0.5, |{'sun':0.1, | 
|   |'beach': 0.3} |'water':0.7} |'water':0.2} |'wind':0.3} | 
------------------------------------------------------------------------ 
|sample3 |{'tenis':0.9, |{'court':0.3, |{'court':0.7, |{'ball':0.2, | 
|   |'ball': 0.8} |'player':0.4} |'tennis':0.3} |'court':0.9} | 
________________________________________________________________________ 

등등 ..

를 만들어 보자하지만, 일반적 없을 것 3 개 이상 -4 태그.

내가 나중에이 데이터로 할 수있는 간단한 계산 등이 무엇인지, 말했다 : 모든 API에서 발생

  • 최대-최소한의 소프트웨어를 점수
  • 태그 만 API
  • 에 나타나는

볼 수있는 것처럼 복잡한 것은 없습니다.

제 질문은 팬더가있는 멍청한 놈입니다. DataFrame은 좋은 접근 방법입니까? 이 데이터 정렬이 변경 되었습니까, 아니면 변경되어야합니까?

답변

1

예, 당신은 index 수준이 sample_idapi_id를 포함 어디에 MultiIndex을 사용할 것이고, 다음은 tag 및 관련 value를 포함하는 두 개의 열이 있습니다. 그런 다음 예를 들어 .groupby(level='api_id').value.max()을 사용하여 통계를 쉽게 사용할 수 있습니다.

다음과 같이가 볼 수 있었다 :

    tag value 
sample_id api_id    
1   1  tag1  1 
2   1  tag2  2 
3   1  tag3  3 
4   2  tag1  1 
5   2  tag2  2 
6   2  tag3  3 
7   2  tag4  1 
8   2  tag5  2 
9   2  tag6  3 
10  3  tag1  1 
11  3  tag2  2 
12  3  tag3  3 
13  3  tag4  1 
14  3  tag5  2 
15  4  tag1  3 
+0

안녕하세요 스테판, 덕분 링크, 나는 조금 힘든 혼란 스러워요 ... MultiIndex이 건설을 위해 같은 아이폰에 배열을 가질 필요합니까? 아니면 가변 길이를 가질 수 있습니까? – AlejandroVK

+0

다른 태그 배열을 의미합니까? API 당 가치? 'api_id'가'MultiIndex'의 일부가 될 것이기 때문에 예제를보십시오, 당신은 유연 할 수 있습니다. – Stefan

+0

실제로 샘플 당 1 개 이상의 태그를 가질 수 있습니다. 즉, 여전히 적용됩니까? 그런데 예를 들어 주셔서 감사합니다. :) – AlejandroVK