2014-06-19 1 views
0

난에 groupby을 사용하셨습니까 팬더 DataFrame 다음과 같은 형식으로 넣어 가지고플로팅 팬더 쌓아 수평 막대 차트로 객체 groupy

Building Type 1   1000 - 3000m2  0.766355 
          3000 - 10000m2  0.140187 
          300 - 1000m2  0.084112 
          10000 - 30000m2 0.009346 
Building Type 2   1000 - 3000m2  1.000000 
Building Type 3   1000 - 3000m2  0.666667 
          3000 - 10000m2  0.222222 
          10000 - 30000m2 0.055556 
          300 - 1000m2  0.055556 
Building Type 4   1000 - 3000m2  0.526316 
          3000 - 10000m2  0.473684 

내가이 일과하려고하는 것은 수평을 만들 각 건물 유형에 대한 막대가있는 누적 막 대형 차트. 본질적으로 데이터를 다음 형식으로 변환하고 싶습니다.

Building Type  300 - 1000m2 1000 - 3000m2 3000 - 10000m2 10000 - 30000m2 
Building Type 1  0.084112  0.766355  0.140187  0.009346 
Building Type 2      1.000000 
Building Type 3  0.055556  0.666667  0.222222  0.055556 
Building Type 4      0.526316  0.473684 

이 기능을 사용하려면 어떤 기능을 사용해야합니까?

답변

0

이것은 생각보다 훨씬 쉬웠습니다. 간단히 groupby 객체에서 unstack을 호출하여 플로팅하는 경우입니다.

df = grouped.unstack() 
df.plot(kind='barh', stacked=True) 

Stacking and unstacking docs

0
piv = pd.pivot_table(datasetname, values="counts",index=["buildingtype"], columns=["m2"], fill_value=0) 
+0

이 더 나은 방법이라고 이유라도? –

+0

@kathleen, 당신의 대답은 정확할지라도, 당신이 조금이라도 언급한다면 그것은 좋을 것입니다. –