代码之家  ›  专栏  ›  技术社区  ›  Vinay Ranjan

用0填充缺失的月份,获取熊猫的连续数据帧

  •  -3
  • Vinay Ranjan  · 技术社区  · 8 年前

    我有一个熊猫数据帧,如下图所示,其中我有“月-年”,需要获取连续数据帧,如果该月没有找到行,该数据帧应包括计数为0。超出的输出如下所示。

    输入数据帧

    Month   | Count
    --------------
    Jan-15  | 10
    Feb-15  | 100
    Mar-15  | 20
    Jul-15  | 10
    Sep-15  | 11 
    Oct-15  | 1 
    Dec-15  | 15
    

    预期产出

    Month   | Count
    --------------
    Jan-15  | 10
    Feb-15  | 100
    Mar-15  | 20
    Apr-15  | 0
    May-15  | 0
    Jun-15  | 0
    Jul-15  | 10
    Aug-15  | 0
    Sep-15  | 11 
    Oct-15  | 1
    Nov-15  | 0 
    Dec-15  | 15
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   user2285236    8 年前

    可以将“月”列设置为索引。它看起来像Excel输入,如果是这样,它将在2015年1月1日解析,因此您可以按如下方式对其重新采样:

    df.set_index('Month').resample('MS').asfreq().fillna(0)
    Out: 
                Count
    Month            
    2015-01-01   10.0
    2015-02-01  100.0
    2015-03-01   20.0
    2015-04-01    0.0
    2015-05-01    0.0
    2015-06-01    0.0
    2015-07-01   10.0
    2015-08-01    0.0
    2015-09-01   11.0
    2015-10-01    1.0
    2015-11-01    0.0
    2015-12-01   15.0
    

    如果月列未被识别为日期,则需要先转换它:

    df['Month'] = pd.to_datetime(df['Month'], format='%b-%y')