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
答案 0 :(得分:1)
'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'