将 df.apply() 与 datetime.strptime 一起使用的语法

考虑下表“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 个)


有人可以帮我语法吗?谢谢你。


largeQ
浏览 484回答 2
2回答

慕田峪9158850

你可以这样做:df['date_new'] = df['date'].map(lambda date_string: datetime.strptime(date_string, format_string))由于您只是在操作,并且需要来自单列的数据,因此您应该使用.map而不是.applywhich 将立即为您提供整个行/列。如果您必须使用申请:df['date_new'] = df.apply(lambda row: datetime.strptime(row['date'], format_string), axis=1)这里的关键是axis=1,所以你要逐行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python