我有一个有3列的数据框。我想按日期分组,并将WinID作为两列,并在单元格中计数。这是我的数据框架:
date userid extid count
0 2019-01-16 1 4624 34
1 2019-01-16 1 4625 2
2 2019-01-16 2 4624 10
3 2019-01-16 2 4625 0
4 2019-01-17 1 4624 32
5 2019-01-17 1 4625 0
6 2019-01-17 2 4624 17
7 2019-01-17 2 4625 1
8 2019-01-18 1 4624 27
9 2019-01-18 1 4625 1
10 2019-01-18 2 4624 27
11 2019-01-18 2 4625 3
12 2019-01-21 1 4624 20
13 2019-01-21 1 4625 0
14 2019-01-21 2 4624 17
15 2019-01-21 2 4625 2
我想要的输出:
date userid 4624 4625
0 2019-01-16 1 34 2
1 2019-01-16 2 10 0
2 2019-01-17 1 32 0
3 2019-01-17 2 17 1
4 2019-01-18 1 27 1
5 2019-01-18 2 27 3
6 2019-01-21 1 20 0
7 2019-01-21 2 17 2
我已经尝试过转置和透视表,但还没能做到这一点。
发布于 2019-01-29 20:48:16
您可以使用aggfunc='first'
进行pivot_table
。除了只支持单个标量index
参数之外,pivot
在概念上是正确的。
res = pd.pivot_table(df, index=['date', 'userid'], columns='extid',
values='count', aggfunc='first').reset_index()
print(res)
extid date userid 4624 4625
0 2019-01-16 1 34 2
1 2019-01-16 2 10 0
2 2019-01-17 1 32 0
3 2019-01-17 2 17 1
4 2019-01-18 1 27 1
5 2019-01-18 2 27 3
6 2019-01-21 1 20 0
7 2019-01-21 2 17 2
https://stackoverflow.com/questions/54429277
复制