Преобразование данных в пандах - PullRequest
0 голосов
/ 15 мая 2018

Как лучше всего решить эту проблему, используя python и pandas?

У меня есть файл Excel по использованию электроэнергии. Он имеет неудобную структуру, и я хочу преобразовать его, чтобы сравнить его с данными о погоде на основе даты и времени.

Структура выглядит следующим образом ( foo это строка, а xx это число )

100,foo,foo,foo,foo

200,foo,foo,foo,foo,foo,0000,kWh,15

300,20181101,xx,xx,xx,xx...(96 columns)xx,A

... several hundred more 300 type rows

строки 100 и 200 идентифицируют счетчик и предоставляют частичную схему. т.е. данные даны в киловатт-часах и 15-минутных интервалах. 300 строк содержат дату и 96 (т. Е. 96 = 24 часа * 4 15-минутных блоков) столбцов с 15-минутным энергопотреблением и один столбец с флагом качества данных.

Ранее я уже обрабатывал все данные в других инструментах, но я пытаюсь научиться делать это в Python (точнее, в блокноте jupyter) и использовать гораздо более продвинутые инструменты анализа, моделирования и визуализации.

Я думаю, что нужно сделать, чтобы преобразовать данные в серию даты и времени. Оттуда я могу объединить фильтр и сравнить, как мне нравится.

Я даже не знаю, какой вопрос задать, или какой ресурс найти, чтобы решить эту проблему. Я мог бы просто импортировать 300 строк как есть и перебрать строки и столбцы, чтобы создать новую серию в правильной структуре - достаточно легко сделать. Тем не менее, я сильно подозреваю, что для такого рода вещей есть встроенный метод, и я был бы очень признателен за любые советы о том, какие стратегии могут быть лучшими. Возможно, мне вообще не нужно преобразовывать данные.

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете легко прочитать данные в DataFrame, вам просто нужно перешагнуть через строки метаданных, например:

df = pd.read_csv(<file>, skiprows=[0,1], index_col=1, parse_dates=True, header=None)

Это прочитает в csv, пропустит первые 2 строки, сделает столбец даты индексом и попытается разобрать его по типу даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...