Я новичок в Python и мне нужна поддержка!
У меня есть два кадра данных от гидрологических c станций (один для данных о потоке и другой для данных о дожде), с разрешением 15 мин, а также некоторые пропущенные даты / значения.
Datetime Value
2019-01-23 15:30:00 0.0
2019-01-23 15:45:00 0.0
2019-01-23 18:30:00 0.3
2019-01-23 18:45:00 0.0
2019-01-23 19:00:00 0.0
2019-01-23 19:15:00 0.0
2019-01-23 19:30:00 0.0
2019-01-23 19:45:00 0.0
2019-01-23 20:00:00 1.0
2019-01-23 20:15:00 0.0
2019-01-23 20:30:00 0.0
2019-01-23 20:45:00 0.0
2019-01-23 21:00:00 0.0
2019-01-23 21:15:00 0.0
2019-01-23 21:30:00 0.0
2019-01-23 23:00:00 0.0
2019-01-23 23:15:00 0.0
2019-01-23 23:30:00 0.0
2019-01-23 23:45:00 0.0
2019-01-24 00:00:00 0.0
....
Я хочу сделать выборку ежечасно и ежедневно («сумма» для данных о дожде, «среднее» для данных о потоке). Кроме того, мне нужны некоторые условия для повторной выборки:
Для ежечасной повторной выборки я хотел бы выполнить повторную выборку только в том случае, если в данный час есть хотя бы 2 значения. Для ежедневной повторной выборки, только если существует не менее 12 значений (на основе кадра данных после ежечасной повторной выборки). Все пропущенные значения после повторной выборки должны быть заменены на «-1», поэтому используемая мной гидрологическая модель понимает, что это недостающее значение.
Мне удалось выполнить повторную выборку для данных о дожде, так как это sum:
df = Dataframe
df_hourly = df.resample("H", closed='right').sum(min_count=2).round(3)
df_daily = df_hourly.resample("D", closed='right').sum(min_count=12).round(3)
df_hourly.to_csv("hourly.txt", sep="\t", na_rep="-1.0")
df_daily.to_csv("daily.txt", sep="\t", na_rep="-1.0")
Результаты (до записи в csv и замены NaN) были:
Datetime
2019-01-23 15:00:00 NaN
2019-01-23 16:00:00 NaN
2019-01-23 17:00:00 NaN
2019-01-23 18:00:00 NaN
2019-01-23 19:00:00 1.0
2019-01-23 20:00:00 0.0
2019-01-23 21:00:00 NaN
2019-01-23 22:00:00 NaN
2019-01-23 23:00:00 0.0
2019-01-24 00:00:00 NaN
2019-01-24 01:00:00 0.0
....
Datetime
2019-01-23 NaN
2019-01-24 0.2
2019-01-25 7.0
2019-01-26 0.0
2019-01-27 4.0
....
Когда я пытался сделать то же самое, но для данных потока (заменив .sum (~) на .mean (~) , я получаю сообщение об ошибке:
pandas.errors.UnsupportedFunctionCall: numpy operations are not valid with resample.
Use .resample(...).mean() instead
Как можно Мне удается пересчитать средние данные с учетом необходимых мне условий?
Заранее спасибо!