2016-07-08 5 views
2

Сначала DataFrame любит это:Как использовать столбцы для разделения DataFrame на группы?

first

Я хотел бы изменить это так:

then

+2

Добро пожаловать в StackOverflow! Для лучшего просмотра вашего вопроса, пожалуйста, не помещайте свой код на фотографии, но лучше скопировать и вставить текст непосредственно в тело вопроса, чтобы он был читабельным. – davedwards

ответ

0

Я думаю, что вам нужно set_index и sort_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()