python - 使用 strptime() 错误的日期时间类型转换
问题描述
我正在尝试使用 将作为日期的字符串转换为正确的日期格式datetime.strptime()
,但我收到一条错误消息,指出传递的参数必须是 str 而不是 Series。
我已将所需的字符串列解析为 datetime 类型,然后尝试使用datetime.strptime()
,但仍然收到错误消息,指出传递的参数必须是 str 而不是 Series。
有人可以帮我解决这个问题吗?
编写的代码如下图所示:
data2['Open_Time']=pd.to_datetime(data2['Open_Time'],infer_datetime_format=True).dt.date
from datetime import datetime
import datetime as dt
data3=dt.datetime.strptime(data2['Open_Time'],'%Y-%d-%m')
data3=data2.set_index(['Open_Time'])
data3.head(2)
错误信息是:
1 from datetime import datetime
2 import datetime as dt
----> 3 data3=dt.datetime.strptime(data2['Open_Time'],'%Y-%d-%m')
4 data3=data2.set_index(['Open_Time'])
5 data3.head(2)
TypeError: strptime() argument 1 must be str, not Series
解决方案
当您将 Series 传递给 strptime 时,它无法确定将应用它的行。
因此,如果您想应用于整个系列,您应该以某种方式对其进行迭代。
这是一个例子:
data3 = data2['Open_Time'].apply(lambda x: dt.datetime.strptime(x, '%Y-%d-%m'))
这将迭代 data2['Open_Time'] ,将每个元素作为 x 并应用 strptime 函数。
推荐阅读
- python-3.x - N 未定义(全球存在)
- jess - Jess在例行调用中报错
- opengl - OpenGL为什么在相同数量的片段上重复纹理可能会降低性能?
- node.js - 如何解决Nodejs中的“错误:ENOENT:没有这样的文件或目录”
- java - What is an illegal reflective access?
- azure - 在 Azure API 管理中向特定终结点添加授权
- c# - 模型上的实体框架在构造函数中创建传递参数
- publish - 谷歌地图街景发布
- katalon-studio - 如何在 Katalon 工作室处理日期选择器?
- r - 如何使用按钮以闪亮的方式更新数据表