Pandas 日期解析器在缺少时将日期设置为当前日期
Pandas date parser sets day to current when missing
我正在解析一个提供月份和年份的固定宽度文件,我想从月份和年份创建一个 pandas 日期,使用 1 作为日期(而不是当前日期) Pandas 默认的月份。
df = pd.read_fwf("/file", colspecs=colspecs,header=None,names=names,
parse_dates= = {'calendar':['eligYear',"eligMonth"]},keep_date_col=True)
数据示例:
eligyear eligmonth
2012 02
2012 01
天数 = 1 而不是当前日期的理想结果,例如
calendar
2012-02-01
2012-01-01
我认为你可以在读入 csv 后更好地将数字解析为日期时间,这样会更灵活。
例如,您可以这样做:
In [43]: df = pd.read_csv(StringIO(s), sep='\s+')
In [47]: df['calendar'] = pd.to_datetime(df['eligyear']*10000 + df['eligmonth']*100 + 1, format='%Y%m%d')
In [48]: df
Out[48]:
eligyear eligmonth calendar
0 2012 2 2012-02-01
1 2012 1 2012-01-01
我正在解析一个提供月份和年份的固定宽度文件,我想从月份和年份创建一个 pandas 日期,使用 1 作为日期(而不是当前日期) Pandas 默认的月份。
df = pd.read_fwf("/file", colspecs=colspecs,header=None,names=names,
parse_dates= = {'calendar':['eligYear',"eligMonth"]},keep_date_col=True)
数据示例:
eligyear eligmonth
2012 02
2012 01
天数 = 1 而不是当前日期的理想结果,例如
calendar
2012-02-01
2012-01-01
我认为你可以在读入 csv 后更好地将数字解析为日期时间,这样会更灵活。
例如,您可以这样做:
In [43]: df = pd.read_csv(StringIO(s), sep='\s+')
In [47]: df['calendar'] = pd.to_datetime(df['eligyear']*10000 + df['eligmonth']*100 + 1, format='%Y%m%d')
In [48]: df
Out[48]:
eligyear eligmonth calendar
0 2012 2 2012-02-01
1 2012 1 2012-01-01