我正在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
该表统计特定日期的所有事件,可以是SAFE
或UNSAFE
。我需要对结果表进行重新采样并对结果求和。
以每日频率对表格进行重新采样会在没有数据的日期引入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
然而,这看起来相当难看,而且我想了解为什么第一种方法不起作用。