#python #pandas #matplotlib
Вопрос:
У меня есть фрейм данных временных рядов, и я хочу построить его, используя тип поля. Кроме того, я хочу сгруппировать данные по дням.
Вот что я сделал,
groups = df.groupby(pd.Grouper(freq='D')) data = pd.DataFrame(pd.concat([pd.DataFrame(x[1].values) for x in groups], axis=1)) data.boxplot(figsize=(20,5)) plt.show()
Это и есть результат,
Почему я потерял даты по оси X? Могу ли я достичь своей цели более простым способом? Я чувствую, что мой код не является питоническим.
Кроме того, я также выполнил приведенный ниже код, но это складывает дни разных месяцев.
sns.boxplot(x=d1.index.day, y=d1['Temperature'])
Пример моего фрейма данных:
Temp 2019/01/01 00:00:00 25.3 2019/01/01 00:30:00 22.0 2019/01/01 01:00:00 22.1 2019/01/01 01:30:00 28.1 2019/01/01 02:00:00 26.8 2019/01/01 02:30:00 25.3 ... 2019/01/02 00:00:00 20.2 2019/01/02 00:30:00 27.0 2019/01/02 01:00:00 27.5 2019/01/02 01:30:00 28.1 2019/01/02 02:00:00 28.8 2019/01/02 02:30:00 26.3 ... 2019/02/10 23:30:00 21.6
Спасибо!
Комментарии:
1. Хотели бы вы добавить образец сгруппированных данных к своему вопросу?
2. Прости! Сделано! @r-новички
3. Учитывая примерные данные: (1)
df.index = pd.to_datetime(df.index)
(2)df['Day'] = df.index.day
(3)sns.boxplot(data=df, x='Day', y='Temp')