2016-07-08 5 views
2

、データフレームはこれを好き:列を使用してDataFrameをグループに分割する方法は?まず

first

私はこのようにそれを変更したい:

then

+2

こんにちは、歓迎です。StackOverflow!あなたの質問のより良い見方をするために、あなたのコードを写真に載せないでください。ただし、テキストを直接コピーして問題の本文に貼り付けて読めるようにしてください。 – davedwards

答えて

0

私はあなたがset_indexsort_indexが必要だと思う:

df.set_index(['Entity_Name','State_Name','State_Group','State_Type'], inplace=True) 
df.sort_index(inplace=True) 

サンプル:あなたが本当に重複を保つために

df = pd.DataFrame({'State_Value':[4,5,6], 
        'State_Type':[7,1,2], 
        'State_Group':[1,3,5], 
        'State_Name':[5,3,1], 
        'Entity_Name':[7,7,7]}) 

df.set_index(['Entity_Name','State_Name','State_Group','State_Type'], inplace=True) 
df.sort_index(inplace=True) 

print (df) 
               State_Value 
Entity_Name State_Name State_Group State_Type    
7   1   5   2      6 
      3   3   1      5 
      5   1   7      4 
+0

ありがとう、それは動作します。 –

+0

私の答えが役に立ったら、[同意する](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。ありがとう。 – jezrael

0

itertoolsと呼ばれるモジュールがあります。 groupbyメソッドを特定の列に使用してください。

(役に立たない場合は私に知らせて)

0

が必要ですか?あなたがしない場合、groupbyがあなたのために作られています!

Frame.groupby(['Entity_name','State_Name','State_Group','State_Type']).first() 
関連する問題