0

我正在jupyter lab使用pandas, 版本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

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

4

0 回答 0