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