我的时间戳列表如下:
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
?
答案 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)