我正在尝试将日期转换为字符串并收到以下错误。
Traceback (most recent call last):
File "C:/BAB/POC/Slam.py", line 113, in <module>
sheet0[col] = format_datecol(sheet0, col)
File "C:/BAB/POC/Slam.py", line 85, in format_datecol
newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: x.strftime('%d%b%Y'))
File "C:2020pythonlibsite-packagespandascoreseries.py", line 3848, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas_libslib.pyx", line 2327, in pandas._libs.lib.map_infer
File "C:/BAB/POC/Slam.py", line 85, in <lambda>
newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: x.strftime('%d%b%Y'))
AttributeError: 'str' object has no attribute 'strftime
'
代码如下...
for col in keycols0:
if '_DT'.casefold() or 'DATE'.casefold() in col:
sheet0[col] = format_datecol(sheet0, col)
def format_datecol(newSheet,datecolumnname):
newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: x.strftime('%d%b%Y'))
# newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: datetime.strptime(x,'%d%b%Y'))
return newSheet[datecolumnname]
当我在带有或出现上述错误的 if 条件中添加多个值时,就会发生此问题..fir 以下代码我没有收到错误
for col in keyColumnNames:
if '_DT'.casefold() in col:
tempSheet[col] = format_datecol(tempSheet, col)
def format_datecol(newSheet,datecolumnname):
newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: x.strftime('%d%m%Y'))
return newSheet[datecolumnname]
会有什么问题?
日期列名数据是str
数据类型,而不是datetime
数据类型
假设您一开始有from datetime import datetime
,并且x
采用'2020-06-28'
格式,请尝试:
newSheet[datecolumnname] = newSheet[datecolumnname].apply(lambda x: datetime(*[int(d) for d in x.split('-')]).strftime('%d%b%Y'))