2017-02-11 5 views
2

Я хочу построить временные ряды для набора данных, который имеет данные за 12 месяцев. Однако данные записываются каждый час каждого дня за 12 месяцев. Весь набор данных составляет более 8000 точек. Данные в следующем форматеГрафик временных рядов matplotlib с большим количеством точек данных

 Date Time Energy 
0 2014-01-01 1  1118.1 
1 2014-01-01 2  1233.2 
2 2014-01-01 3  1278.2 
.  .  .  . 
23 2014-01-01 24 1125.3 
24 2014-01-02 1  1213.3 
. .   .  . 

Когда я сюжет его как этот

plt.plot(energy['Date'], energy['Energy']) 
plt.xlabel('Date') 
plt.ylabel('Energy') 

я получаю следующие выходные данные time series

Этот график не имеет особого смысла, потому что я не могу наблюдать любые тенденции. Вместо этого я хочу отображать среднюю энергию за каждый день. Любые другие предложения о том, как построить этот временной ряд таким образом, что я наблюдать любые тенденции приветствовать

+0

Это Закончено 8000 ?! https://giphy.com/gifs/wander-over-yonder-Mra7xZQpHxNC Сейчас я борюсь с относительно небольшим набором данных с 2,747,418 * 2 баллами. – wordsforthewise

ответ

3

Вам нужно groupby с агрегирование mean первым:

energy = energy.groupby('Date')['Energy'].mean() 

, а затем Series.plot:

energy.plot() 

Все вместе:

energy.groupby('Date')['Energy'].mean().plot() 
1

IIUC:

вам нужно сортировать

energy = energy.sort_values(['Date', 'Time']) 
plt.plot(energy['Date'], energy['Wind Generation']) 
plt.xlabel('Date') 
plt.ylabel('Energy') 
plt.autofmt_xdate() 
Смежные вопросы