2017-10-17 91 views
0

我有一個熊貓數據框,看起來像這樣:轉換值一列單行的Python

Area1 Area2 
    1  2  
    1  4 
    1  5 
    1  9 
    2  8 
    2  16 
    2  4 
    2  1 
    3  8 
    3  9 

我如何轉換「區域2」列,使之成爲每個「區域1的值的列表「列

所以輸出我希望是:

Area1  Area2 
    1  2, 4, 5, 9  
    2  8, 16, 4, 1 
    3  8, 9 

我已經R中以前也做過這樣的:

df %>% group_by(Area1) %>% summarise(Area2= toString(sort(unique(Area2)))) 

我一直在嘗試groupby()和agg(),但沒有成功。

有人能解釋一下我可以提前使用一次,我一直在使用df.groupby(「區域1」),分組數據

非常感謝您的任何建議。

回答

1

可以GROUPBY和應用列表

import pandas as pd 
df=pd.read_csv("test.csv") 
df.groupby('Area1')['Area2'].apply(list) 
1

將R片段做字符串連接。

以下行保留原始類型Area2

import pandas as pd 

df.groupby('Area1').Area2.apply(pd.Series.tolist).reset_index()