在 python pandas 中将日期时间字段格式化为 MON-YYYY 并忽略空值

Format datetime field as MON-YYYY in python pandas & ignore nulls

我有一个 python pandas 数据框 "df" 如下 -

      NAME  SETID   VENDOR_ID vendor_created_date
0  Vendor1     SD          93 2002-11-22 11:04:33
1  Vendor2     SD          94 2003-08-09 11:40:59
2  Service1    SD          95 2003-10-31 10:29:21
3  Vendor3     SD          01                 NaT
4  Vendor4     SD          02                 NaT 

vendor_created_date 的格式为 datetime64[ns]

现在我想创建一个名为 fomatted_date 的新字段,其中 vendor_created_date 字段值的格式应为 MON-YYYY & 我想删除带有 [=18= 的行] 在日期字段中。

你能给我指路吗?

这是您想要的格式吗?

基本上我们可以先删除 NaN 行,然后调用 apply 并使用 datetime.strftime 应用新格式:

In [24]:

df = df.dropna()
df['fomatted_date'] = df['vendor_created_date'].apply(lambda x: dt.datetime.strftime(x,'%b-%Y'))
df
Out[24]:
           NAME SETID  VENDOR_ID vendor_created_date fomatted_date
Index                                                             
0       Vendor1    SD         93 2002-11-22 11:04:33      Nov-2002
1       Vendor2    SD         94 2003-08-09 11:40:59      Aug-2003
2      Service1    SD         95 2003-10-31 10:29:21      Oct-2003

有几种方法可以做到。

一种方法是使用正则表达式(re 模块)来搜索已知模式并将其替换为所需的输出。

另一种方法是使用 datetime 模块并使用 datetime.datetime.strftime.

将其转换为所需的格式