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
最佳答案
'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'
关于python - 日期类型在strptime之后更改,然后在strftime之后更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38358689/