Как преобразовать столбцы в указатель даты и времени - PullRequest
0 голосов
/ 26 апреля 2020

Пожалуйста, обратитесь к изображению в ссылке, чтобы взглянуть на мой набор данных. https://i.stack.imgur.com/0LJQP.png

Я пытаюсь преобразовать эти столбцы в указатель даты и времени и название страны из первого столбца в названия столбцов. Я попытался с помощью транспонирования, pivot, но ничего не работает. На самом деле я хочу применить к ней модель ARIMA, и поскольку она не поддерживает аргумент axis = 1, поэтому у меня есть только один вариант - изменить имена столбцов на индекс datetime. Пожалуйста, помогите, если у вас есть решение этой проблемы.

Ответы [ 3 ]

1 голос
/ 26 апреля 2020
import pandas as pd
df = pd.DataFrame({'Country/Region': ['Afghanistan', 'Albania', 'Algeria'],
                   '1/22/20': [1, 0, 0],
                   '1/23/20': [0, 2, 3],
                   '1/24/20': [0, 1, 2]})
df = df.T
country = df1.iloc[0].to_list()
df.columns = country
df = df.drop('Country/Region')
print(df)

Выход:

        Afghanistan Albania Algeria
1/22/20           1       0       0
1/23/20           0       2       3
1/24/20           0       1       2
0 голосов
/ 26 апреля 2020

Для получения нужных столбцов вам понадобится комбинация melt и pivot.

import pandas as pd

df = pd.DataFrame({'country': ['Albania', 'Bahamas', 'Bhutan'],
                   '1/22/20': [0, 0, 0],
                   '1/23/20': [0, 0, 0],
                   '1/24/20': [0, 0, 0]})

df_melt = pd.melt(df, id_vars=['country'], var_name="date", value_name="value")
df_melt['date'] = pd.to_datetime(df_melt['date'])

df_pivot = pd.pivot(df_melt, index='date', columns='country')
df_pivot.columns = df_pivot.columns.droplevel()
print(df_pivot)

Вывод:

country     Albania  Bahamas  Bhutan
date                                
2020-01-22        0        0       0
2020-01-23        0        0       0
2020-01-24        0        0       0
0 голосов
/ 26 апреля 2020

Если я правильно понимаю, вы пытаетесь преобразовать имена столбцов в datetime. Должно работать следующее:

df.columns= pd.to_datetime(df.columns) 
...