我有一个由每小时数据组成的系列。我想计算每日总和。数据可能缺少小时数,有时还缺少日期。2017-02-01 00:00:00 3.02017-02-01 01:00:00 4.02017-02-01 02:00:00 4.02017-02-03 00:00:00 3.0例如,在上面 2017-02-01 的时间序列中,只有前三个小时的数据存在。其余 21 小时数据丢失。2017-02-02 的数据完全缺失。我不在乎错过的时间。每日总和应该考虑一天中存在的任何数据(在示例中,它应该考虑小时 0、1、2)。但是,如果某个日期完全缺失,我应该将 NaN 作为该日期的总和。resample() 后跟 sum() 适用于 #1。但它为 #2 返回 0。2017-02-01 110.02017-02-02 0.02017-02-03 3.0这是虚拟代码:my_series.resample('1D',closed='left',label='left').sum()我如何告诉 resample(),不要为缺失的日期设置 0?
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
使用min_count=1在sum:
min_count : int, default 0
执行操作所需的有效值数。如果存在少于 min_count 的非 NA 值,则结果将为 NA。
0.22.0 新版功能: 添加默认值为 0。这意味着全 NA 或空系列的总和为 0,全 NA 或空系列的乘积为 1。
a = my_series.resample('1D',closed='left',label='left').sum(min_count=1)
print (a)
2017-02-01 11.0
2017-02-02 NaN
2017-02-03 3.0
Freq: D, Name: a, dtype: float64
添加回答
举报
0/150
提交
取消