在pandas中分组后填充缺失值

时间:2017-04-30 22:42:17

标签: python pandas plot missing-data

数据如下所示:

         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   

我按日期时间(每个月)和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      

正如您所看到的,2009-01中有一些用户ID,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      ********** 

谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您可以将数据帧取消堆叠(缺失值将变为i = 0 while(i < 10): #Ask for user input foo = input() #if foo value != yes_or_no value increment i if foo != yes_or_no: i+=1 &#39; s),然后用0填充缺失值,然后再将帧堆叠起来:

na