2016-09-27 28 views
1

请参阅在链接的形象最好看的输入和输出要求的格式和阅读以下集团独特的零元素在Python或蜂巢独特的第i个元素

enter image description here

我试图说明取一个3(或2)列csv并创建一个新的csv,其中对于每个唯一的第一个元素(即第二列),所有唯一的第0个元素被分组,以便输出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