猿问

Pandas:如何在从每小时到每日数据重新采样时避免填充

我有一个由每小时数据组成的系列。我想计算每日总和。数据可能缺少小时数,有时还缺少日期。


2017-02-01 00:00:00  3.0

2017-02-01 01:00:00  4.0

2017-02-01 02:00:00  4.0

2017-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.0

2017-02-02  0.0

2017-02-03  3.0

这是虚拟代码:


my_series.resample('1D',closed='left',label='left').sum()

我如何告诉 resample(),不要为缺失的日期设置 0?


一只甜甜圈
浏览 126回答 1
1回答

波斯汪

使用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.02017-02-02     NaN2017-02-03     3.0Freq: D, Name: a, dtype: float64
随时随地看视频慕课网APP

相关分类

Python
我要回答