我有TimeSeries
个整数,我想使用resample()
进行缩减采样。问题是我有一些丢失数据的句点转换为NaN
。由于pandas不支持Integer NA values,因此整数将转换为浮点数。
是否可以使用TimeSeries
对fill_value
重新取样,因为reindex(fill_value=0)
可能会丢失数据?我不希望我的整数投入花车。
>>> dates = (datetime(2013, 1, 1), datetime(2013,1,2), datetime(2013,3,1))
>>> s = Series([1,2,4],index=dates)
>>> s
2013-01-01 1
2013-01-02 2
2013-03-01 4
dtype: int64
>>> s.resample('M', how='sum')
2013-01-31 3
2013-02-28 NaN
2013-03-31 4
Freq: M, dtype: float64
# Desired output (doesn't work)
>>> s.resample('M', how='sum', fill_value=0)
2013-01-31 3
2013-02-28 0
2013-03-31 4
Freq: M, dtype: int64
答案 0 :(得分:6)
您可以定义自己的功能以避免NaN
In [36]: def _sum(x):
....: if len(x) == 0: return 0
....: else: return sum(x)
....:
In [37]: s.resample('M', how=_sum)
Out[37]:
2013-01-31 3
2013-02-28 0
2013-03-31 3
Freq: M, dtype: int64