2017-12-27 363 views
1

我的代碼正在工作,這是很好的笑聲,但輸出的方式不同。Groupby在Pandas

更新的代碼SINCE RECIEVING ANSWER

import pandas as pd 

# Import File 
YMM = pd.read_excel('C:/Users/PCTR261010/Desktop/OMIX_YMM_2016.xlsx').groupby(['Make','Model']).agg({'StartYear':'min', 'EndYear':'max'}) 

print(YMM) 

輸出類似於製作|模型| StartYear | EndYear,所有列在列列下方的模型列旁邊的生成列。但是這些製作過程就像一個數據透視表一樣。

這裏是一個屏幕截圖:
enter image description here

我下一步需要美國汽車的每一個美國汽車型號,每別克未來每一個別克模型等。

下面是樣本數據的鏈接: http://jmp.sh/KLZKWVZ

+0

不要鏈接到數據。改爲在此分享。 –

回答

2

試試這個:

res = YMM.groupby(['Make','Model'], as_index=False).agg({'StartYear':'min', 'EndYear':'max'}) 

res = YMM.groupby(['Make','Model']).agg({'StartYear':'min', 'EndYear':'max'}).reset_index() 
+0

就是這樣!我和.agg一起玩,無法達成目標。現在我只需要Make就可以重複模型旁邊的列。 –

+0

@SamRussoPalmer,很高興它有幫助。我的公司防火牆不允許我下載您的示例數據...我可以在家以後下載它。你可以發佈一個期望的數據集的例子,因爲('需要Make重複在Model旁邊的列)'不對我清楚 – MaxU

+0

已更新,但我不得不做一個屏幕截圖,但下面我解釋了。 –

1

用自己的代碼

Min = YMM.groupby(['Make','Model']).StartYear.min() 
Max = YMM.groupby(['Make','Model']).EndYear.max() 

Min['Endyear']=Max.EndYear