Как получить пандас датафрейм в виде серии? - PullRequest
0 голосов
/ 23 мая 2018

Я пробую библиотеку statsmodels в python. У меня есть данные, которые имеют определенные значения trend и seasonality. statsmodels предоставляет способ построить эти тренды, а также получить координаты в виде фрейма данных.мой код ниже

df = pd.read_csv("test_forecast/upload_data.csv")
df["date"] = pd.to_datetime(df["date"], format="%Y-%m-%d")
df.set_index("date", inplace=True)
df = df.resample('D').mean().interpolate(method='linear', axis=0).fillna(0)

Теперь я пытаюсь получить координаты, скажем, trend.

print(sm.tsa.seasonal_decompose(df["upload"]).trend.interpolate(method='linear', axis=0).fillna(0))

Вот вывод

date
2018-04-22     3.919738
2018-04-23     3.985145
2018-04-24     3.839589
2018-04-25     3.723810
2018-04-26     3.566047
2018-04-27     3.416895
2018-04-28     3.215901
...            ...
...            ...

Теперь яЯ хочу выполнить вывод в виде .values

print(sm.tsa.seasonal_decompose(df["upload"]).trend.interpolate(method='linear', axis=0).fillna(0).values)

Я получаю вывод, как показано ниже

[3.91973791  3.98514482  3.83958857  3.72381001  3.56604662
  3.41689526  3.21590053  3.21826295  3.17641971  3.25942285  3.39823427
  3.51068301  3.80029493  4.17883987  4.40204831]

Но я также хочу date значения так, что мой вывод будет что-то вроде

[['2018-04-22', 3.919738], ['2018-04-23', 3.985145], ['2018-04-24', 3.839589]].....

Как получить date в массиве вместе со значениями?

Ответы [ 2 ]

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

В дополнение к ответу @pyd полный ответ для получения требуемого результата (без reindexing и использования tolist()) составляет

coordinates = list(map(list, zip(df.index.strftime('%Y-%m-%d'), sm.tsa.seasonal_decompose(df["upload"]).trend.interpolate(method='linear', axis=0).fillna(0).values)))
0 голосов
/ 23 мая 2018

попробуй,

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