2016-09-27 4 views
1

가장 입력 및 필요한 출력 형식을 참조하는 링크에서 이미지를보고 내가 추구하고있어그룹 고유의 0 번째 요소

enter image description here

아래 설명을 읽어 보시기 바랍니다 3 (또는 2) 열 csv를 가져 와서 각각의 고유 한 첫 번째 요소 (즉 두 번째 열)에 대해 고유 한 0 번째 요소를 모두 그룹화하여 출력 csv 행의 구조가 다음과 같이 그룹화되는 새 CSV를 만듭니다. 고유 한 첫 번째 요소, 고유 0 번째 요소 # 1, 고유 0 번째 요소 # 2, ...

Python 3.xo 사용 r Python 2.x 또는 Hive 또는 SQL. 어떤 제안이라도 대단히 감사합니다. 고맙습니다!

+2

텍스트로 데이터를 제공합니다. – Ambrish

답변

1

당신이이 방법을 수행 할 수 있습니다

In [34]: df 
Out[34]: 
    c1 c2 
0 1 p1 
1 1 p1 
2 1 p2 
3 2 p2 
4 2 p3 
5 3 p3 
6 3 p3 
7 3 p3 
8 3 p4 
9 3 p4 
10 3 p5 

In [36]: (df.groupby('c2')['c1'] 
    ....: .apply(lambda x: ','.join(x.unique().astype(str))) 
    ....: .to_frame('unique').to_csv(r'D:/temp/output.csv') 
    ....:) 

output.csv :

c2,unique 
p1,1 
p2,"1,2" 
p3,"2,3" 
p4,3 
p5,3 
+0

@MaxU 감사합니다! 정렬이 잘 작동합니다. 추가 된 문자 bc에 작은 문제가 있습니다. 정렬 된 0 번째 요소는 큰 따옴표 (")로 출력됩니다. 원래 게시물에는 없지만 나중에 수정할 수 있지만 이상적으로 출력 CSV에는 문자가 추가되지 않습니다. 다시 한번 감사드립니다. 코드가 많은 도움이되었습니다! – WhyNot