python - 如何将字符串转换为日期 pandas python TypeError : strptime() takes no keyword arguments

标签 python string date pandas

我有一个数据框,其中包含一些文本日期。我想在单独的列中返回日期:年、月和日。但为了做到这一点,我需要首先将文本(来自 Excel)转换为日期。

我现在的代码是

def convertdate(dstring):
    dt = time.strptime(dstring, date_format='%Y-%m-%d')
    return dt

但是它返回一个:TypeError:strptime()不接受关键字参数

然后用三个单独的函数来创建三个单独的列,一个代表年份,一个代表月份,一个代表日期。

一旦字符串是日期时间对象(dt),我相信代码是:return dt.year, return dt.month, return dt.day

我想要一个向我的数据框添加三列的函数,这可能吗?

最佳答案

将格式字符串作为位置参数传递。

>>> import time
>>> def convertdate(dstring):
...     return time.strptime(dstring, '%Y-%m-%d')
...
>>> convertdate('2013-03-02')
time.struct_time(tm_year=2013, tm_mon=3, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=61, tm_isdst=-1)

顺便说一句,time.strptime返回time.struct_time 。它的属性以 tm_ 为前缀。

更佳的是,您可以使用 datetime.datetime.strptime :

>>> import datetime
>>> import pandas as pd
>>>
>>> def convertdate(dstring):
...     return datetime.datetime.strptime(dstring, '%Y-%m-%d')
...
>>> dt = convertdate('2013-03-02')
>>> dt
datetime.datetime(2013, 3, 2, 0, 0)
>>> pd.DataFrame([{'year': dt.year, 'month': dt.month, 'day': dt.day}])
   day  month  year
0    2      3  2013

关于python - 如何将字符串转换为日期 pandas python TypeError : strptime() takes no keyword arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138932/

相关文章:

swift - 如何将字符串转换为utf-8? ( swift ,Alamofire)

python - 我可以使方法成为生成器而不是返回生成器吗?

Python 从 telnetlib 输出中获取 IP 地址

python - 10.13 High Sierra OSX - 使用 ENOMEM 授予 exec 权限时,Python mprotect 总是失败

Python 2.7 给我莫名其妙的 "syntax errors"

Java 拆分(字符串操作)

ruby-on-rails - date.today Rails 2.3.9 的命名范围

oracle - 如何从日期中获取星期几名称?

java - 如何在python中定义引用同一类对象的类变量

Java - boolean 逻辑 - 无法识别对象