在 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.
将其转换为所需的格式
我有一个 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.