如何将列转换为日期时间索引
How to convert Columns into datetime index
请参考link中的图像来查看我的数据集。 https://i.stack.imgur.com/0LJQP.png
我正在尝试将这些列转换为日期时间索引,并将国家/地区名称从第一列转换为列名。我试过使用转置、枢轴但没有任何效果。我实际上想对它应用 ARIMA 模型,因为它不支持 axis=1 参数,所以我只有一个选择是将列名更改为日期时间索引。如果您有解决此问题的任何解决方案,请提供帮助。
如果我没理解错的话,您是在尝试将列名转换为日期时间。以下应该有效:
df.columns= pd.to_datetime(df.columns)
您需要结合使用 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
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
请参考link中的图像来查看我的数据集。 https://i.stack.imgur.com/0LJQP.png
我正在尝试将这些列转换为日期时间索引,并将国家/地区名称从第一列转换为列名。我试过使用转置、枢轴但没有任何效果。我实际上想对它应用 ARIMA 模型,因为它不支持 axis=1 参数,所以我只有一个选择是将列名更改为日期时间索引。如果您有解决此问题的任何解决方案,请提供帮助。
如果我没理解错的话,您是在尝试将列名转换为日期时间。以下应该有效:
df.columns= pd.to_datetime(df.columns)
您需要结合使用 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
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