上面修改后的代码还是会报错 NaTType does not support strftime
时间: 2024-03-05 13:48:07 浏览: 212
如果传进来的参数中有null值,将其过滤掉后,依然会因为存在`NaT`而导致`strftime`方法报错,因为`NaT`表示的是时间戳无效或不存在的情况。此时,我们可以在lambda表达式中增加判断,将值为`NaT`的数据过滤掉。
修改后的代码如下:
```
import pandas as pd
import numpy as np
def datetime_to_ddmmmyyyy(columnValue):
return columnValue.map(lambda x: x.strftime("%d%b%Y").upper() if isinstance(x, pd.Timestamp) else None)
```
在lambda表达式中,我们增加了判断条件:如果x是一个`pd.Timestamp`类型的数据,则将其格式化为"%d%b%Y"的形式,并转换为大写字母。如果x不是一个`pd.Timestamp`类型的数据,即x为`NaT`或者`None`,则返回`None`。
这样,在对数据进行格式化的时候,就可以避免因为存在`NaT`而导致`strftime`方法报错的情况了。
阅读全文