Как объединить столбцы «Месяц» и «Год» во фрейме данных для формирования данных временного ряда - PullRequest
0 голосов
/ 24 октября 2018

Мой фрейм данных

Нижеследующий фрейм данных состоит из столбцов "Год", "Месяц" и "Данные":

np.random.seed(0)

df = pd.DataFrame(dict(
Year = [2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003],
Month = [1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12],
Data = np.random.randint(21,100,size=36)))

df

Я хочупитонский способ преобразовать его в данные временного ряда, чтобы у меня вместо данных были «Данные» и «Данные» в качестве данных временного ряда.

Что я пытался

Я пробовал:

import pandas as pd
timeseries = data.assign(Date=pd.to_datetime(data[['Year', 'Month']].assign(day=1)))
columns = ['Year','Month']

df.drop (колонки, на месте = True, ось = 1) # Мне не нужен день, а год и месяц, серия

, ноновые данные только добавляют столбец с именем «Дата» к фрейму данных.

Что я хочу

Я хочу данные временного ряда, которые будут состоять из «Дата»(Например, 2001-1) и столбец «Данные» только для того, чтобы я мог строить временной график, выполнять анализ временных рядов и прогнозировать их с помощью данных.

Я имею в виду, как индексировать такие данные временных рядов, чтобы приЯ строю график с помощью этого кода:

plt.figure(figsize=(5.5, 5.5))
data1['Data'].plot(color='b')
plt.title('Monthly Data')
plt.xlabel('Data')
plt.ylabel('Data')
plt.xticks(rotation=30)

. Моя ось X будет градуирована как данные, а не как число

.

1 Ответ

0 голосов
/ 24 октября 2018

IIUC, ваш подход хорош, и позвольте участку панд обрабатывать ось X.

ax = df.set_index(pd.to_datetime(df[['Year','Month']].assign(day=1)))['Data']\
       .plot(color='b', figsize=(5.5,5.5), title='Monthly Data')
_ = ax.set_xlabel('Data')
_ = ax.set_ylabel('Data')

Вывод:

enter image description here

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