2017-12-27 16 views
0

パンダに次のように私は私のデータをGROUPBY:[「カテゴリ」](= [「産業」、「国」、「カテゴリ」]で)ソート

df.groupbyカウント()

は、データフレームはGROUPBY後に次のようになります。

--------------------------------------- 
Industry | Country | category |      
--------------------------------------- 
Oil | Portugal | 0  | 14 
          1  | 4 
          None | 7 
      Germany | 1  | 27 
          0  | 22 
          None | 7 
      Spain  | 1  | 12 
          0  | 1 
--------------------------------------- 

Gas | Ireland | 1  | 2 
          0  | 11 
          None | 1 
      Italy  | 0  | 120 
          1  | 33 
      Malta  | 1  | 3 
          0  | 4 
          None | 7 
      Turkey  | 0  | 355 
          1  | 44 
--------------------------------------- 

しかし、私は特定のカテゴリ値の数に基づいて自分のデータをソートしたいと思います。たとえば、カテゴリ値 '0'のカウントでソートすると、フレームは次のようになります。カテゴリ '0'(22,14,1)と(355,120,11,4)のカウントに基づくソートに注意してください。

--------------------------------------- 
Industry | Country | category |      
--------------------------------------- 
Oil | Germany |  1  | 27 
          0  | 22 
          None | 7 
      Portugal | 0  | 14 
          1  | 4 
          None | 7 
      Spain  | 1  | 12 
          0  | 1 
--------------------------------------- 

Gas | Turkey  | 0  | 355 
          1  | 44 
      Italy  | 0  | 120 
          1  | 33 
      Ireland | 1  | 2 
          0  | 11 
          None | 1 
      Malta  | 1  | 3 
          0  | 4 
          None | 7 

--------------------------------------- 

私はこのような)(アンスタック使用してみました:

df.groupby(by=['industry', 'country', 'category'])['category'].count().unstack() 

df.sort_values(by=['0'], ascending=[False]) 

、その後は「0」で、それをソートしてみましたが、これDONOTは、元のグループ化やインデックス作成を保護します。

私はこれをPandasで解決できますか?助けてください。ありがとう。

次はあなたが必要なもののために働く必要が

答えて

0

df = df.groupby(by=['industry', 'country', 'category'])['category'].count().reset_index() 

df.sort_values(by='category', ascending=True, na_position='Last',inplace=True) 
+0

が、残念ながら、これは仕事をdidnot。 reset_index()は元のグループ化を破棄します。 –