首页 > 解决方案 > strptime() 参数 1 必须是 str,而不是 Series 时间序列转换

问题描述

我使用 datetime 从 json 读取时间,单次代码运行良好,

 import datetime
 data=datetime.datetime.strptime('Apr 12, 2018', '%b %d, Y').strftime('%m/%d/%Y')

但是,当我尝试将其应用到数据框中时,出现错误。

 df_newtime=datetime.datetime.strptime(old_df['oldDate'],'%b %d, %Y').strftime('%m/%d/%Y')

错误是TypeError: strptime() argument 1 must be str, not Series

标签: pythonpandasdatetime

解决方案


你可以通过两种方式做到这一点:

方法一:

这里我们将一个字符串传递给函数使用map

list(map(lambda x: datetime.datetime.strptime(x,'%b %d, %Y').strftime('%m/%d/%Y'), old_df['oldDate']))

方法二:

这里我们传递一个系列

pd.to_datetime(old_df['oldDate'], format='%b %d, %Y')

推荐阅读