如何将列转换为日期时间索引

问题描述 投票:0回答:3

请参考链接中的图像以查看我的数据集。 https://i.stack.imgur.com/0LJQP.png

我正在尝试将这些列转换为日期时间索引,并将国家/地区名称从第一列转换为列名称。我尝试使用移调,枢轴,但没有任何效果。我实际上要对其应用ARIMA模型,因为它不支持axis = 1参数,所以我只有一个选择是将列名更改为datetime索引。如果您有解决此问题的解决方案,请提供帮助。

python pandas numpy statsmodels arima
3个回答
0
投票

如果我理解正确,您正在尝试将列名称转换为日期时间。以下应该工作:

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

0
投票

您将需要融合和旋转才能获得所需的列。

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
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.