日期类型在strtime和strftime之后更改?

2024-10-03 06:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,所以我有以下问题。为什么a不等于b?非常感谢。你知道吗

fundData['SigDate']
    0         31DEC2008
    1         31JAN2009
    2         28FEB2009
    3         31MAR2009
    4         30APR2009
a=fundData['SigDate']
b=fundData['SigDate'].apply(lambda x : datetime.strptime(x,'%d%b%Y').strftime('%d%b%Y'))
a==b
    0         False
    1         False
    2         False
    3         False

Tags: lambdafalsedatetimeapply新手strftimestrptimefunddata
1条回答
网友
1楼 · 发布于 2024-10-03 06:27:28

'strptime/strftime'转换在句子大小写中为月份条目返回一个字符串,因此您的比较是正确的False

>>> from datetime import datetime as dt
>>>
>>> x = "31DEC2008"
>>> dt.strptime(x,'%d%b%Y').strftime('%d%b%Y')
'31Dec2008'
>>>
>>> '31Dec2008' == '31DEC2008'
False

您可以对lambda函数中返回的字符串调用upper,使它们匹配:

>>> dt.strptime(x,'%d%b%Y').strftime('%d%b%Y').upper()
'31DEC2008'

相关问题 更多 >