разбить данные CSV времени на разные годы и построить их на одном графике - PullRequest
3 голосов
/ 10 января 2020

У меня есть паспорт 157619 строк. Он содержит почасовые измерения температуры за период 2002 - 2019 гг. Я хотел бы построить график с годом на оси времени (ось x), а затем нарисовать все годы на одном графике. Для этой задачи я думал разбить данные на разные DataFrames / Series, содержащие каждый год, а затем построить их на диаграмме. Данные выглядят так:

Produkt_Code  SDO_ID   Zeitstempel  Wert  Qualitaet_Niveau  Qualitaet_Byte
0       TE100_MN002    4466  200201010000   4.5                 1            -999
1       TE100_MN002    4466  200201010100   4.5                 1            -999
2       TE100_MN002    4466  200201010200   4.5                 1            -999
3       TE100_MN002    4466  200201010300   4.5                 1            -999
4       TE100_MN002    4466  200201010400   4.5                 1            -999
...             ...     ...           ...   ...               ...             ...
157613  TE100_MN002    4466  201912311900   6.3                 0               1
157614  TE100_MN002    4466  201912312000   6.3                 0               1
157615  TE100_MN002    4466  201912312100   6.3                 0               1
157616  TE100_MN002    4466  201912312200   6.3                 0               1
157617  TE100_MN002    4466  201912312300   6.3                 0 

Поэтому мне нужно только время в качестве индекса и температуры, которые можно найти в столбце Wert. Я применил read_csv для упрощения данных:

data_100 = pd.read_csv(data_dir_100, parse_dates=True, usecols=["Wert", "Zeitstempel"], index_col="Zeitstempel")

Вывод выглядит так:

                         Wert
Zeitstempel           
    2002-01-01 00:00:00   4.5
    2002-01-01 01:00:00   4.5
    2002-01-01 02:00:00   4.5
    2002-01-01 03:00:00   4.5
    2002-01-01 04:00:00   4.5
    ...                   ...
    2019-12-31 19:00:00   6.3
    2019-12-31 20:00:00   6.3
    2019-12-31 21:00:00   6.3
    2019-12-31 22:00:00   6.3
    2019-12-31 23:00:00   6.3

Я новичок и не знаю, как продолжить

Результат первого решения дано: [Same result with changing

1 Ответ

0 голосов
/ 10 января 2020

Если я правильно понимаю, вы можете адаптировать этот фрагмент для решения вашей проблемы

import pandas as pd
import matplotlib.pyplot as plt

data_dict = {
'Zeitstempel': ['2002-01-01 00:00:00','2002-01-01 01:00:00',
'2002-01-01 03:00:00','2002-01-01 04:00:00','2019-12-31 19:00:00',
'2019-12-31 20:00:00', '2019-12-31 21:00:00','2019-12-31 22:00:00',
'2019-12-31 23:00:00'],
'Temperatur':[6.7,6.6,6.7,6.7,10.7,10.7,10.7,10.7,10.7]
}

df = pd.DataFrame(data_dict)

df[["Zeitstempel"]] = df[["Zeitstempel"]].apply(pd.to_datetime)
df.plot(kind='bar',x='Zeitstempel',y='Temperatur')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...