2016-10-20 6 views
0

Я довольно новичок в Python, и я просто столкнулся с проблемой.Потеря ключей в pandas dataframe, когда после использования groupby

mini_agg мой оригинал pandas.dataframe и я пытаюсь сгруппировать его по 2 столбцам.

trial = mini_agg.groupby(['date','product','product_type_1','product_type_2','product_type_3','product_type_4']).sum() 

print mini_agg.shape 
print trial.shape 

выход:

(2965909, 10)
(499281, 4)

Кроме того, я не могу получить доступ ключей, с помощью которого я сгруппированных по. В R Я возвращаю свою колонку при использовании агрегата.

Не могли бы вы помочь мне? Спасибо заранее

+0

Пожалуйста, включите значения mini_agg в предоставленный вами код – Ssein

ответ

1

How to GroupBy a Dataframe in Pandas and keep Columns

Просто нашел ответ, который я не нашел с моими предыдущими запросами:

trial = mini_agg.groupby(['date','product','product_type_1','product_type_2','product_type_3','product_type_4']).sum().reset_index() 

Достаточно добавить .reset_index()

+1

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить l чернила для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/14042705) –

+0

@PlamenPetrov благодарит! –

1

Я ожидал, что значения mini_agg быть однако я полагаю, что это комбинация двух одномерных помеченных структур данных. Так как вы упомянули mini_agg является pandas.dataframe и как вы должны знать DataFrame Как Series имеет возможность принимать другой DataFrame в качестве входных данных:

Поэтому, если mini_agg быть похожим:

import pandas as pd 
FRAME= {'one' : pd.Series([1., 2., 3.], index=['product_type_1', 'product_type_2', 'product_type_3']), 
'two' : pd.Series([1., 2., 3., 4.], index=['product_type_1', 'product_type_2', 'product_type_3', 'product_type_4'])} 
mini_agg = pd.DataFrame(FRAME) 

Так,

trial = pd.DataFrame(mini_agg, index=['date','product','product_type_1','product_type_2','product_type_3','product_type_4'], columns=['A', 'B', 'C', 'D', 'E', 'F']) 

 Смежные вопросы

  • Нет связанных вопросов^_^