Постройте среднее значение и std. dev. при определенных часовых тиках, используя Pandas

#python #matplotlib #plot #pandas

#python #matplotlib #построить #pandas

Вопрос:

У меня есть фрейм данных Pandas в следующем формате:

                        Ozone  CellT  CellP  FlowRate
Date/Time
10/06/14 15:49:57   40.4   32.6  978.6      2297
10/06/14 15:54:57   44.0   32.7  978.6      2267
10/06/14 15:59:57   44.7   32.8  978.6      2249
10/06/14 16:04:57   45.0   32.9  978.6      2262
10/06/14 16:09:57   45.0   32.9  978.6      2286
  

Я хочу построить его как среднее значение за час чтения озона по сравнению с меткой времени с наложением плюс / минус стандартного отклонения.

Когда я в настоящее время показываю текущее значение ozone, ось x (временная метка) имеет произвольную временную метку, такую как «06.10.14 15:49:57». Я бы хотел, чтобы каждая отметка по оси x отмечалась в разные дни в 12:00:00.

Как мне продолжить построение среднего значения за последний час в сравнении с отметкой времени с отметками в 12:00:00 ежедневно?

РЕДАКТИРОВАТЬ: следующее работает для вычисления среднего и std на почасовой основе. Что я хочу сделать сейчас, так это дополнить значения и нанести на них правильные отметки.

 df['OzoneHourlyMean'] = df.Ozone.resample('H', how='mean')
df['OzoneHourlyStd'] = df.Ozone.resample('H', how='std')
  

Приведенные выше команды выдают данные в следующем формате:

 2014-06-10 15:00:00    43.033333
2014-06-10 16:00:00    44.291667
2014-06-10 17:00:00    44.691667
2014-06-10 18:00:00    45.175000
2014-06-10 19:00:00    44.433333
  

Комментарии:

1. Что вы подразумеваете под «наложением стандартного отклонения»

2. Извините за неясность. Я имею в виду отображать среднее значение / — std.

3. Вы хотите отобразить стандартное отклонение в виде вертикальных полос ошибок?

4. Да, это правильно.

Ответ №1:

В ответ на это, я думаю, это то, что осталось в отредактированном вопросе

Как мне продолжить построение среднего значения за последний час в сравнении с отметкой времени с отметками в 12:00:00 ежедневно?

Я думаю, все, что вы хотите сделать, это установить отметки в полдень каждый день. Вы можете создать свой собственный список тиков, а затем использовать их. Взаимодействие с pandas может испортить xticks, поэтому я бы, вероятно, просто использовал прямой matplotlib. Для вас что-то вроде этого?

 tickv = pd.date_range('10/06/2014 12:00:00', periods=5, freq = 'D')
plt.plot(df.index, df['OzoneHourlyMean'])
plt.xticks(tickv)