我有一个数据框,如下所示有四个位置:
df
Date Location Count
0 2018-11-20 loc 1 22
1 2018-11-20 loc 2 1
2 2018-11-20 loc 3 5
3 2018-11-20 loc 4 34
4 2018-11-21 loc 1 20
5 2018-11-21 loc 2 2
6 2018-11-22 loc 1 20
7 2018-11-23 loc 3 3
8 2018-11-23 loc 4 21
我希望用0计数来填补缺失的位置,这样看起来像:
df
Date Location Count
0 2018-11-20 loc 1 22
1 2018-11-20 loc 2 1
2 2018-11-20 loc 3 5
3 2018-11-20 loc 4 34
4 2018-11-21 loc 1 20
5 2018-11-21 loc 2 2
6 2018-11-21 loc 3 0
7 2018-11-21 loc 4 0
8 2018-11-22 loc 1 20
9 2018-11-22 loc 2 0
10 2018-11-22 loc 3 0
11 2018-11-22 loc 4 0
12 2018-11-23 loc 1 0
13 2018-11-23 loc 2 0
14 2018-11-23 loc 3 3
15 2018-11-23 loc 4 21
日期存储为字符串.做这个的最好方式是什么?我应该首先转换日期然后应用函数吗?
最佳答案 您可以使用带有堆栈的数据透视
df = df.pivot(*df.columns).fillna(0).stack().reset_index().rename(columns={0:'Count'})
df
Out[60]:
Date Location Count
0 2018-11-20 loc1 22.0
1 2018-11-20 loc2 1.0
2 2018-11-20 loc3 5.0
3 2018-11-20 loc4 34.0
4 2018-11-21 loc1 20.0
5 2018-11-21 loc2 2.0
6 2018-11-21 loc3 0.0
7 2018-11-21 loc4 0.0
8 2018-11-22 loc1 20.0
9 2018-11-22 loc2 0.0
10 2018-11-22 loc3 0.0
11 2018-11-22 loc4 0.0
12 2018-11-23 loc1 0.0
13 2018-11-23 loc2 0.0
14 2018-11-23 loc3 3.0
15 2018-11-23 loc4 21.0