我正在使用Apriori算法分析一些数据。这要求我将数据帧转换为元组(groupby col“ c1”)的数组,每个元组都对应于数据帧的“行”。如果元组中只有一个值,则我想在它后面加上一个“,”,因为我需要将其保留为元组。
In [1]: data
Out[1]:
c1 c2
0 r1 aa
1 r1 bb
2 r1 cc
3 r2 dd
4 r2 ee
5 r3 ff
我希望这样的数据:
[('aa','bb','cc'),('dd','ee'),('ff',)]
答案 0 :(得分:3)
将GroupBy.apply
与tuple
一起使用,并将Series
转换为list
:
a = df.groupby('c1')['c2'].apply(tuple).tolist()
print (a)
[('aa', 'bb', 'cc'), ('dd', 'ee'), ('ff',)]