1

我有一个 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_dateMON-YYYYNaT

你能给我指路吗?

4

2 回答 2

4

这是你想要的格式吗?

基本上我们可以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
于 2015-03-24T18:57:15.987 回答
0

有几种方法可以做到这一点。

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

另一种方法是使用该datetime模块并使用 datetime.datetime.strftime 将其转换为所需的格式。

于 2015-03-24T18:57:54.210 回答