如何从时间戳中切片日期并转换为字符串?

时间:2019-04-24 11:31:56

标签: python pandas

我的时间戳列表如下:

time_list = 
[Timestamp('2019-01-24 00:00:00'),
 Timestamp('2019-01-27 00:00:00'),
 Timestamp('2019-01-29 00:00:00'),
 Timestamp('2019-02-08 00:00:00'),
 Timestamp('2019-02-09 00:00:00'),
 Timestamp('2019-02-10 00:00:00')]

我只想将日期部分转换为字符串。我的代码是

aux1 = []
for i in time_list:     
    aux1.append(str(i))
date_list = aux1

当前输出为:

date_list = 
['2019-01-24 00:00:00',
 '2019-01-27 00:00:00',
 '2019-01-29 00:00:00',
 '2019-02-08 00:00:00',
 '2019-02-09 00:00:00',
 '2019-02-10 00:00:00']

但是我想要的输出是:

date_list = ['2019-01-24', '2019-01-27', '2019-01-29', '2019-02-08', '2019-02-09', '2019-02-10']

在我的代码中,我使用了for循环方法,但未产生所需的答案。有没有更好的方法来获得我想要的date_list

3 个答案:

答案 0 :(得分:1)

在列表理解或循环中使用Timestamp.strftime

date_list = [x.strftime('%Y-%m-%d') for x in time_list]

date_list = []
for i in time_list:     
    date_list.append(i.strftime('%Y-%m-%d'))

或使用DatetimeIndex.strftime转换为list

date_list = pd.DatetimeIndex(time_list).strftime('%Y-%m-%d').tolist()
print (date_list)
['2019-01-24', '2019-01-27', '2019-01-29', '2019-02-08', '2019-02-09', '2019-02-10']

答案 1 :(得分:0)

您可以使用dt.strftime

例如:

aux1 = []
for i in time_list:     
    aux1.append(i.dt.strftime('%Y-%m-%d'))
date_list = aux1

答案 2 :(得分:0)

尝试这样:

import dateutil.parser


date_list = ['2019-01-24 00:00:00',
 '2019-01-27 00:00:00',
 '2019-01-29 00:00:00',
 '2019-02-08 00:00:00',
 '2019-02-09 00:00:00',
 '2019-02-10 00:00:00']

for data in date_list:

   dates = dateutil.parser.parse(data).date()
   print(dates)