gpt4 book ai didi

python - 将索引转换为日期时间索引

转载 作者:行者123 更新时间:2023-12-01 00:24:45 26 4
gpt4 key购买 nike

我的数据框是这样的:

YearMonth Number of Visitors 
Jan-91 177400
Feb-91 190600
Mar-91 189200
Apr-91 168000
May-91 161400

我想将索引转换为 1991-01 之类的内容。我尝试了 index.to_datetime 但收到错误:

ValueError: day is out of range for month

我的代码如下:

dataC = pd.read_csv('Visitors.csv', index_col='YearMonth', parse_dates=True, dayfirst=True)
dataC.index = dataC.index.to_datetime(dayfirst=True)

我能实现我的目标吗?

最佳答案

对我来说,解决方案的第一部分对我有用:

import pandas as pd
from io import StringIO

pd.options.display.max_columns = 20

temp="""YearMonth,Number of Visitors
Jan-91,177400
Feb-91,190600
Mar-91,189200
Apr-91,168000
May-91,161400"""
#after testing replace 'pd.compat.StringIO(temp)' to 'Visitors.csv'
dataC = pd.read_csv(StringIO(temp), index_col='YearMonth', parse_dates=True)
print (dataC)
Number of Visitors
YearMonth
1991-01-01 177400
1991-02-01 190600
1991-03-01 189200
1991-04-01 168000
1991-05-01 161400

print (dataC.index)
DatetimeIndex(['1991-01-01', '1991-02-01', '1991-03-01', '1991-04-01',
'1991-05-01'],
dtype='datetime64[ns]', name='YearMonth', freq=None)

如果想要不同的格式,一种可能的解决方案是 DataFrame.to_period 的月份周期。 :

dataC = dataC.to_period('m')
print (dataC)
Number of Visitors
YearMonth
1991-01 177400
1991-02 190600
1991-03 189200
1991-04 168000
1991-05 161400

print (dataC.index)
PeriodIndex(['1991-01', '1991-02', '1991-03', '1991-04', '1991-05'],
dtype='period[M]', name='YearMonth', freq='M')
<小时/>

在您的解决方案中,如果要将索引转换为 DatemeIndex 正确的解决方案是 to_datetime使用 format 参数:

dataC.index = pd.to_datetime(dataC.index, format='%b-%y')

关于python - 将索引转换为日期时间索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58678971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com