分组后填充缺失值

2024-04-26 05:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

数据如下所示:

         Unnamed: 0   userid  placeid              datetime
0                 0     1338   482954  2011-06-23T02:24:22Z   
1                 1     1338   580963  2011-06-22T14:23:03Z   
2                 2     1338   365256  2011-06-09T23:29:30Z   
3                 3     1338    89504  2011-05-22T15:54:30Z   
4                 4     1338  1267135  2011-05-21T16:51:13Z   
5                 5     1338  1487647  2011-05-16T18:40:41Z   
6                 6     1338   730343  2011-05-16T18:39:46Z   
7                 7     1338   365256  2011-04-24T17:13:13Z   
8                 8     1338  6394522  2011-04-24T13:51:04Z   
9                 9     1338    39597  2011-04-06T14:39:58Z   

我已经按datetime(每月)和userid对数据进行了分组。然后我计算了在给定的时间段内每个用户有多少个实例。结果如下:

             Unnamed: 0  count
Date    userid                                      
2009-01 1                18       
        2                 4       
        3                 4       
        5                 3       
        7                 2       
        12               11       
2009-02 1                42       
        2               138      
        3                62      
        4                 6      
        5                58      
        6                 9      
        7                14      

如您所见,有些userid在2009-01中,在2009-02中不存在,反之亦然。因为我要绘制计数,所以我需要两个绘图中的所有用户都能够比较这两个绘图。因此,所需的输出如下(添加的行用*******标记):

             Unnamed: 0  count
Date    userid                                      
2009-01 1                18       
        2                 4       
        3                 4       
        4                 0     **********  
        5                 3
        6                 0     **********         
        7                 2       
        12               11       
2009-02 1                42       
        2               138      
        3                62      
        4                 6      
        5                58      
        6                 9      
        7                14 
        12                0      ********** 

谢谢你的帮助。你知道吗


Tags: 数据实例用户标记绘图datetimedatecount
1条回答
网友
1楼 · 发布于 2024-04-26 05:25:09

您可以取消数据帧的堆栈(缺少的值将变成na),然后用0填充缺少的值,然后重新堆栈帧:

df.unstack().fillna(0).astype(int).stack()

相关问题 更多 >

    热门问题