2017-10-27 11 views
2

데이터 프레임을 목록으로 변환하고 열의 고유 값으로 그룹화하고 조 변경하려고합니다. 먼저 중복 값을 삭제해야하는지 잘 모르겠습니다. for 루프 나 pandas를 사용해야 할 필요가있는 것 같지만 어떻게 계산하지 못했습니다. 누군가가 도울 수 있다면 좋을 것 같습니다.Python - 열의 고유 한 값으로 그룹화하고 df를 목록에 조 변경합니다.

데이터 프레임을 CVS에 : 여기에 내가하고 싶은 원하는

Col1 Col2 
Apple Mary 
Apple Ben 
Apple Katy 
Kiwi Joy 
Kiwi Sam 
Banana Ben 
Banana Tom 
Banana John 

원하는 출력 :

[Apple, Mary, Ben , Katy] 
[Kiwi, Joy, Sam] 
[Banana, Ben, Tom, John] 

감사합니다!

답변

1

당신은

print(l[0]) 

['Apple', 'Mary', 'Ben', 'Katy'] 
0

.loc를 사용해보십시오 개별 목록을 액세스하려면 목록

l = [[label] + grp['Col2'].unique().tolist() for label, grp in df.groupby('Col1')] 


[['Apple', 'Mary', 'Ben', 'Katy'], 
['Banana', 'Ben', 'Tom', 'John'], 
['Kiwi', 'Joy', 'Sam']] 

의 목록을 얻을 수 있습니다. 예 :

for fruits in d_f.Col1.unique(): 
    names = d_f.loc[d_f['Col1']==fruits,"Col2"].tolist() 
    print([fruits]+names)