Python:从现有列创建日期数据框
我有一个熊猫数据框架,其中一列可以保存数年,一列可以保存数月。如何基于这两个数据创建新的日期列(我可以假设day=15) 我尝试了以下方法: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)) ,
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)