Python:从现有列创建日期数据框

Python:从现有列创建日期数据框,python,date,pandas,Python,Date,Pandas,我有一个熊猫数据框架,其中一列可以保存数年,一列可以保存数月。如何基于这两个数据创建新的日期列(我可以假设day=15) 我尝试了以下方法: import pandas as pd import numpy as np import datetime df = pd.DataFrame() df['year'] = np.arange(2000,2010) df['mydate']= datetime.date( df['year'].apply(lambda x: int(x)) ,

我有一个熊猫数据框架,其中一列可以保存数年,一列可以保存数月。如何基于这两个数据创建新的日期列(我可以假设day=15)

我尝试了以下方法:

import pandas as pd
import numpy as np
import datetime  

df = pd.DataFrame()
df['year'] = np.arange(2000,2010)

df['mydate']= datetime.date( df['year'].apply(lambda x: int(x)) , 1 , 1)
但我得到了这个错误信息:

第77行,在包装器中 无法将序列转换为{0}。格式(str(converter)))类型错误:无法将序列转换为

我不明白,因为我明确地把x转换成int


谢谢

您可以使用
df.apply(fnc,axis=1)
基于现有列构建另一列

在您的情况下,这将成为:

df = pd.DataFrame()
df['year'] = np.arange(2000,2010)
df['month'] = 6

df['date_time']= df.apply(lambda row :
                          datetime.date(row.year,row.month,15), 
                          axis=1)

谢谢我的代码出现错误是因为datetime.date只在一行上工作,而函数一次只在一行上工作,所以我需要应用(fun())而不是fun(apply())?您提供了一个
DataFrame
作为
datetime.date()
的参数,这没有意义。由于
date()
不知道如何处理它,它显然试图将其转换为int。在我的示例中,您对三个整数调用
datetime
。也就是说,
lambda
接收一个
(一个
系列
)作为输入,并输出一个
日期
对象,然后该对象由
df聚合。对返回的
系列
应用
df = pd.DataFrame()
df['year'] = np.arange(2000,2010)
df['month'] = 6

df['date_time']= df.apply(lambda row :
                          datetime.date(row.year,row.month,15), 
                          axis=1)