我有一个pandas数据框,其中包含多年的列和一个月的列。如何根据这两个列创建一个新的日期列(我可以假设一天= 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)
但我收到此错误消息:
df['mydate']= datetime.date( df['year'].apply(lambda x: int(x)) , 1 , 1) File "C:\Anaconda\lib\site-packages\pandas\core\series.py",
第77行,在包装中 "无法将系列转换为{0}" .format(str(转换器)))TypeError:无法将系列转换为
我不明白,因为我明确地将x转换为int。
谢谢!
答案 0 :(得分:2)
您可以使用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)