将年份和月份的数据框组合到新对象Python中

时间:2018-11-12 22:59:20

标签: python python-3.x pandas date dataframe

我有一个仅包含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映射到日期以正确绘制图形?

1 个答案:

答案 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