Pandas 从列元素到行元素的数据操作

Pandas data manipulation from column to row elements

我有数百万行的数据集,下面是它的外观示例以及我打算输出的内容:

data = [[1, 100, 8], [1, 100, 4], 
       [1, 100,6], [2, 100, 0],
      [2, 200, 1], [3, 300, 7], 
      [4, 400, 2], [5, 100, 6], 
      [5, 100, 3], [5, 600, 1]] 
      
df= pd.DataFrame(data, columns =['user', 'time', 'item'])
print(df)
   user  time   item
     1   100     8
     1   100     4
     1   100     6
     2   100     0
     2   200     1
     3   300     7
     4   400     2
     5   100     6
     5   100     3
     5   600     1

期望的输出应该让用户在同一时间内消耗的所有项目一起出现在 items 列中,如下所示

user time   item
1    100    8,4,6
2    100    0
5    100    6,3
2    200    1
3    300    7
4    400    2
5    500    6

例如,user: 1time: 100

内消费了产品 8,4,6

这是如何实现的?

使用df.astype with Groupby.agg and df.sort_values:

In [489]: out = df.astype(str).groupby(['user', 'time'])['item'].agg(','.join).reset_index().sort_values('time')

In [490]: out
Out[490]: 
  user time   item
0    1  100  8,4,6
1    2  100      0
5    5  100    6,3
2    2  200      1
3    3  300      7
4    4  400      2
6    5  600      1