繁体   English   中英

将strptime函数应用于pandas系列

[英]Applying strptime function to pandas series

我有一个pandas DataSeries,其中包含以下形式的字符串格式化日期:

2016-01-14 11:39:54

我想将字符串转换为时间戳。

我正在使用apply方法尝试将'datetime.strptime'传递给系列的每个元素

date_series = date_string.apply(datetime.strptime, args=('%Y-%m-%d %H:%M:%S'))

当我运行代码时,我收到以下错误:

strptime() takes exactly 2 arguments (18 given)

我的问题是(1)我采取了正确的方法,(2)为什么strptime我的args转换为18个参数?

使用pd.to_datetime

date_series = pd.to_datetime(date_string)

一般来说,如果你计划在Pandas工作,最好将你的日期作为Pandas的pd.Timestamp而不是Python的datetime.datetime 您可能还想查看时间序列/日期功能文档

至于你的apply不工作的原因, args不是作为元组读取,而是作为一个字符串被分解为17个字符,每个字符被解释为一个单独的参数。 要将其作为元组读取,请添加逗号: args=('%Y-%m-%d %H:%M:%S',)

这是Python中的标准行为。 请考虑以下示例:

x = ('a')
y = ('a',)
print('x info:', x, type(x))
print('y info:', y, type(y))

x info: a <class 'str'>
y info: ('a',) <class 'tuple'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM