Pandas数据帧中的非统一日期列

我的数据框看起来像:

a = DataFrame({'clicks': {0: 4020, 1: 3718, 2: 2700, 3: 3867, 4: 4018, 5:  
     4760, 6: 4029},'date': {0: '23-02-2016', 1: '24-02-2016', 2: '11/2/2016',
     3: '12/2/2016', 4: '13-02-2016', 5: '14-02-2016', 6: '15-02-2016'}})

行有2种不同的格式 .

我需要的格式是:

a = DataFrame({'clicks': {0: 4020, 1: 3718, 2: 2700, 3: 3867, 4: 4018,
5: 4760, 6: 4029}, 'date': {0: '2/23/2016',1: '2/24/2016', 2: '2/11/2016',
3: '2/12/2016', 4: '2/13/2016', 5: '2/14/2016', 6: '2/15/2016'}})

到目前为止,我设法在Excel中打开csv作为文本数据,UTF-8格式,然后为日期列选择MDY格式 . 此外,我申请:

a['date'] = a['date'].apply(lambda x: datetime.strptime(x,'%m/%d/%Y'))

我怎样才能在熊猫中有效地做到这一点?

回答(1)

3 years ago

您可以使用to_datetime转换为 datetime ,然后调用dt.strftime以您想要的格式获取它:

In [21]:
a['date'] = pd.to_datetime(a['date']).dt.strftime('%m/%d/%Y')
a

Out[21]:
   clicks        date
0    4020  02/23/2016
1    3718  02/24/2016
2    2700  02/11/2016
3    3867  02/12/2016
4    4018  02/13/2016
5    4760  02/14/2016
6    4029  02/15/2016

如果该列已经是 datetime dtype,那么您可以跳过 to_datetime 步骤