我有一个仅包含Year和Month的独立列的数据框,例如:
Year Month
2001 1
2001 2
2001 3
.
.
2010 1
2010 2
.
使用pd.datetime
转换为pd.to_datetime(df[['year', 'month']])
需要几天的时间来匹配格式,所以我得到了错误:
ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day] is missing
我觉得我可以只填一个新列并重复Day = 1,但是我想避免这种情况,因为我只想在Year-Month之前创建一个时间序列。
是否可以将Year-Month映射到日期以正确绘制图形?
答案 0 :(得分:3)
没有一个月datetime
这样的事情。
pd.to_datetime
assign
使用参数中指定的列创建df
的副本。
如@timgeb所述:
说明:
df.assign(day=1)
是创建带有'day'
列的临时数据框而无需修改原始数据框的快速方法。
pd.to_datetime(df.assign(day=1))
0 2001-01-01
1 2001-02-01
2 2001-03-01
3 2010-01-01
4 2010-02-01
dtype: datetime64[ns]
to_period
您可能要使用to_period
。
pd.to_datetime(df.assign(day=1)).dt.to_period('M')
0 2001-01
1 2001-02
2 2001-03
3 2010-01
4 2010-02
dtype: object