python – Pandas填写缺少的位置和计数

我有一个数据框,如下所示有四个位置:

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
点赞