2016-10-20 41 views
0

我對Python很新,而且我剛遇到一個問題。在使用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油墨供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/評論/低質量帖/ 14042705) –

+0

@PlamenPetrov謝謝! –

1

我希望mini_agg值是但是我想這是兩個一維標籤數據結構的組合。所以,當你提到mini_agg是一個pandas.dataframe,正如你必須知道DataFrameSeries有可能接受另一個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'])