>我有一个包含 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
我尝试过转置和数据透视表,但无法完成此操作。
您可以使用aggfunc='first'
pivot_table
。 pivot
在概念上是正确的,但它只支持一个标量index
参数。
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