Создание DataFrame с именами столбцов, содержащихся в столбце - PullRequest
0 голосов
/ 03 марта 2020

У меня есть CSV-файл (скачано с здесь , откройте «альтернативные форматы» и выберите «сложенный»).

При открытии он содержит что-то как это:

enter image description here

Как видите, в столбце 'variable' есть несколько имен. Я хотел бы переместить каждый тип переменной в новый столбец, используя «Нет», если он недоступен, чтобы получить результат:

+---------+-----------+-----------+-----------------+-----+
| country | timestamp | load_load | wind_generation | ... |
+---------+-----------+-----------+-----------------+-----+
| DE      | 2013      | 165.9     | None            | ... |
+---------+-----------+-----------+-----------------+-----+
| IT      | 2014      | 143.8     | 123.4           | ... |
+---------+-----------+-----------+-----------------+-----+

Я использую python 3,6 и, если необходимо, pandas.

1 Ответ

1 голос
/ 03 марта 2020

Несколько вещей, которые вы хотите сделать: убедитесь, что ваш столбец "utc_timestamp" имеет формат datetime. Затем вы можете легко сгруппировать в год, месяц, ... все, что вы хотите. Это не ясно из вопроса, но я предполагаю, что вы хотите сгруппировать данные по годам, регионам и «переменным» и получить среднее значение по группе. Сделайте простой групповой вызов, включая функцию pd.grouper. Затем, используйте команду unstack для «variable», это поместит различные значения в столбцы.

import pandas as pd
df = pd.read_csv('time_series_30min_stacked.csv')

df["utc_timestamp"] = pd.to_datetime(df["utc_timestamp"])
df_perYear = df.groupby(["region", "variable", pd.Grouper(key='utc_timestamp', freq="Y")]).mean()["data"]
df_unstack = df_perYear.unstack("variable")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...