如何使用列将DataFrame分成组?

时间:2016-07-08 05:25:33

标签: python pandas

首先,DataFrame喜欢这个:

first

我希望改变它:

then

3 个答案:

答案 0 :(得分:0)

有一个名为 itertools 的模块。 在特定列上使用 groupby 方法。

(如果没有帮助,请告诉我)

答案 1 :(得分: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

答案 2 :(得分:0)

你真的需要保留重复吗?如果你没有,groupby就是为你制作的!

Frame.groupby(['Entity_name','State_Name','State_Group','State_Type']).first()