2015-12-14 50 views
3

我需要根據groupby結果添加新列。以下面的數據框爲例。熊貓 - 使用Groupby列出新列中的數據列

ID  City  
234x Lima 
342x Rica 
234x Rio 
333x NYC 
333x SF 

我一直對使用GROUP_BY獲得數:

df_GroupBy = pd.DataFrame({'count':df.groupby([ "ID"]).size()}).reset_index() 

這給出了一個輸出:

ID  Count 
234x  2 
342x  1 
333x  2 

我想現在做的就是這樣的輸出:

ID  City  City_2 
234x  Lima  Rio 
342x  Rica  
333x  NYC  SF 

我看看在Transformmap編輯但沒有太大的成功。謝謝你的幫助。

回答

2

你可以

cities = df.groupby('ID')['City'].apply(lambda x: pd.Series([city for city in x])).unstack() 

     0 1 
ID    
234x Lima Rio 
333x NYC SF 
342x Rica NaN 
+0

感謝。這適用於所提供的示例。我的主要目的是跨多個欄目進行組合。例如,如果輸入數據具有['ID','City1','City2','CityN']列,您會有什麼建議? – everestbaker

+0

這可能會稍有不同,可能會增加一個準備步驟 - 您是否介意在樣本數據中發佈一個新問題,以便我可以說明問題? – Stefan

+0

不幸的是我每90分鐘只能發一次。你能在這裏發佈你的解決方案嗎謝謝。 – everestbaker