【问题标题】:Filling missing values after grouping in pandas在熊猫分组后填充缺失值
【发布时间】:2017-04-30 22:42:17
【问题描述】:

数据如下:

         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   

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

             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      

如您所见,有一些用户 ID 在 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      ********** 

感谢您的帮助。

【问题讨论】:

    标签: python pandas plot missing-data


    【解决方案1】:

    您可以将dataframe unstack(缺失值变为na's),然后用0s填充缺失值,然后再次将frame重新堆叠:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2018-01-01
      • 2018-01-16
      • 2020-02-02
      • 1970-01-01
      相关资源
      最近更新 更多