我有數百萬行的資料集,這是它的外觀和我打算輸出的示例:
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,6time: 100
這怎么可能實作?
uj5u.com熱心網友回復:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/475077.html
上一篇:numpy陣列元素串列-ValueError:具有多個元素的陣列的真值不明確。使用a.any()或a.all()
