提问人:Squid Game 提问时间:5/15/2022 更新时间:5/16/2022 访问量:28
从列到行元素的 Pandas 数据操作 [复制]
Pandas data manipulation from column to row elements [duplicate]
问:
我有数百万行的数据集,下面是一个示例,说明它的外观和我打算输出的内容:
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: 1
8,4,6
time: 100
这怎么可能实现?
答:
1赞
Mayank Porwal
5/16/2022
#1
将 df.astype
与 Groupby.agg
一起使用并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
评论