考虑下表“df”: date sales 0 2021-04-10 483 1 2022-02-03 226 2 2021-09-23 374 3 2021-10-17 186 4 2021-07-17 35我想使用apply()and将当前为字符串的列日期转换为日期datetime.strptime()。我尝试了以下方法:format_date = "%Y-%m-%d"df["date_new"] = df.loc[:,"date"].apply(datetime.strptime,df.loc[:,"date"],format_date)我有以下错误。系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。我尝试了不同的语法(带有args和**kwds参数,apply()但我总是收到错误),例如:apply() 正好接受 2 个参数(给出 3 个)有人可以帮我语法吗?谢谢你。
2 回答

慕田峪9158850
TA贡献1794条经验 获得超7个赞
你可以这样做:
df['date_new'] = df['date'].map(lambda date_string: datetime.strptime(date_string, format_string))
由于您只是在操作,并且需要来自单列的数据,因此您应该使用.map
而不是.apply
which 将立即为您提供整个行/列。
如果您必须使用申请:
df['date_new'] = df.apply(lambda row: datetime.strptime(row['date'], format_string), axis=1)
这里的关键是axis=1
,所以你要逐行
添加回答
举报
0/150
提交
取消