python - 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
解决方案
你可以通过两种方式做到这一点:
方法一:
这里我们将一个字符串传递给函数使用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')
推荐阅读
- java - 如何将类中的属性与字符串进行比较?
- android - 使用 Android BillingClient 2.1 检索应用内购买,返回空列表
- javascript - 我想知道我可以在 if() 中写比这更短的条件吗?
- promise - 使用 Cherio 进行平行刮削
- intellij-idea - 将 IntelliJ IDEA 字体恢复为 2020.1 之前的默认字体
- r - R:如何为我的数据集创建特定的循环和 ifelse 语句。(附数据集)
- list - 你好,我想知道如何删除列表的第一个元素
- django-rest-framework - Django中的隔离和并发
- java - Java 中的 string.getLengh() 和 getLength(string) 有什么区别吗?
- python - ImportError:没有名为 selenium windows 10 的模块