У меня есть серия, состоящая из почасовых данных. Я хочу вычислить дневную сумму. В данных могут отсутствовать часы, а иногда и даты.
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
Например, в приведенном выше временном ряду за 01.02.2017 представлены данные только за первые три часа. Остальные данные за 21 час отсутствуют.
Данные за 2017-02-02 полностью отсутствуют.
resample(), за которой следует sum(), отлично работает для #1. Но он возвращает мне 0 для # 2.
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 для отсутствующих дат?






Используйте min_count=1 в sum:
min_count : int, default 0
The required number of valid values to perform the operation. If fewer than min_count non-NA values are present the result will be NA.New in version 0.22.0: Added with the default being 0. This means the sum of an all-NA or empty Series is 0, and the product of an all-NA or empty Series is 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
Потрясающий! Я пошел выпить чашку чая, и вы решили проблему, с которой я сталкиваюсь последние 2 часа. Спасибо! Я должен был изучить документацию здесь: pandas.pydata.org/pandas-docs/stable/reference/api/…