Python 仅合并年和月列以生成日期

Python 仅合并年和月列以生成日期,python,python-2.7,python-3.x,pandas,jupyter-notebook,Python,Python 2.7,Python 3.x,Pandas,Jupyter Notebook,我需要一些帮助,我目前有一个数据框,有两个数字格式的独立列“年”和“月”,我只想将这些列转换为日期。 例如2017年12月12日 有人知道怎么做吗? 任何帮助都将不胜感激 使用pd.to\u datetime 设置 df = pd.DataFrame(dict( year=[2001, 2003, 2014, 1996], month=[5, 12, 2, 7], other=list('WXYZ') )) df month other year 0

我需要一些帮助,我目前有一个数据框,有两个数字格式的独立列“年”和“月”,我只想将这些列转换为日期。 例如2017年12月12日

有人知道怎么做吗?
任何帮助都将不胜感激

使用
pd.to\u datetime

设置

df = pd.DataFrame(dict(
    year=[2001, 2003, 2014, 1996],
    month=[5, 12, 2, 7],
    other=list('WXYZ')
))

df

   month other  year
0      5     W  2001
1     12     X  2003
2      2     Y  2014
3      7     Z  1996
df = df.assign(Date=pd.to_datetime(df[['year', 'month']].assign(day=1)))

df

   month other  year       Date
0      5     W  2001 2001-05-01
1     12     X  2003 2003-12-01
2      2     Y  2014 2014-02-01
3      7     Z  1996 1996-07-01

解决方案

df = pd.DataFrame(dict(
    year=[2001, 2003, 2014, 1996],
    month=[5, 12, 2, 7],
    other=list('WXYZ')
))

df

   month other  year
0      5     W  2001
1     12     X  2003
2      2     Y  2014
3      7     Z  1996
df = df.assign(Date=pd.to_datetime(df[['year', 'month']].assign(day=1)))

df

   month other  year       Date
0      5     W  2001 2001-05-01
1     12     X  2003 2003-12-01
2      2     Y  2014 2014-02-01
3      7     Z  1996 1996-07-01

不幸的是,当我使用上面的代码时,我得到了一个错误。错误状态为“ValueError:额外的键已传递到datetime程序集”您对如何绕过此问题有何建议?这消除了我的错误,然而,我如何在我的数据框中显示它?@Harry reassign to df我该怎么做?我当前的代码如下:导入熊猫作为pd导入numpy作为np导入datetime df=pd.read_csv(“Health.csv”)df.assign(Date=pd.to_datetime(df['Year',Month']]].assign(day=1)))df