pandas的fillna没有在resampled数据透视表上工作

时间:2017-12-05 12:20:35

标签: python pandas fillna

我正在jupyter labpandas版本0.20.1合作。我有一个带有DatetimeIndex的数据透视表,例如

In [1]: 
pivot = df.pivot_table(index='Date', columns=['State'], values='B',
                       fill_value=0, aggfunc='count')
pivot

Out [1]:
State       SAFE  UNSAFE
Date                    
2017-11-18     1       0
2017-11-22    57      42
2017-11-23   155     223

该表统计特定日期的所有事件,可以是SAFEUNSAFE。我需要对结果表进行重新采样并对结果求和。

以每日频率对表格进行重新采样会在没有数据的日期引入NaNs。令人惊讶的是,我无法将这些NaNs与pandas'fillna()一起投放。

In [2]: 
pivot = pivot.resample('D').sum().fillna(0.) 
pivot

Out [2]:
State        SAFE  UNSAFE
Date                     
2017-11-18    1.0     0.0
2017-11-19    NaN     NaN
2017-11-20    NaN     NaN
2017-11-21    NaN     NaN
2017-11-22   57.0    42.0
2017-11-23  155.0   223.0

任何人都可以解释为什么会发生这种情况,我怎样才能摆脱那些NaNs?我可以在

行中做点什么
for col in ['SAFE', 'UNSAFE']:
    mov.loc[mov[col].isnull(), col] = 0

然而,这看起来相当难看,而且我想了解为什么第一种方法不起作用。

0 个答案:

没有答案