为python或hive中的唯一第i个元素分组CSV的唯一第0个元素

时间:2016-09-27 01:03:45

标签: python csv pandas hive itertools

请在链接中查看图像,以便最好地查看输入和所需的输出格式,并阅读下面的说明

enter image description here

我正在寻找一个3(或2)列csv并创建一个新的csv,其中对于每个唯一的第一个元素(即第二列),所有唯一的第0个元素被分组,因此输出csv行的结构是因此: 唯一的第一个元素,唯一的第0个元素#1,唯一的第0个元素#2,...

使用Python 3.x或Python 2.x或Hive或SQL。非常感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分: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