python:如何从np数组中删除时间

2024-09-25 00:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的代码,我只想保留日期本身。在

>>> date = q_data.Date
>>> dt = np.array(date)
>>> dt
array(['2017-02-14 09:00:00', '2017-02-15 09:00:00', '2017-02-16 09:00:00',       '2017-02-17 09:00:00', '2017-02-20 09:00:00', '2017-02-21 09:00:00',       '2017-02-22 09:00:00', '2017-02-23 09:00:00', '2017-02-24 09:00:00',       '2017-02-28 09:00:00', '2017-03-01 09:00:00', '2017-03-02 09:00:00',       '2017-03-03 09:00:00', '2017-03-06 09:00:00', '2017-03-07 09:00:00',       '2017-03-08 09:00:00', '2017-03-09 09:00:00', '2017-03-10 09:00:00',] dtype=object)

我希望它有以下内容: array(['2017-02-14','2017-02-15',....]dtyepe=object)

dt.date()返回AttributeError: 'numpy.ndarray' object has no attribute 'date'


Tags: no代码numpydatadateobjectnpdt
2条回答

看起来您的输入(date)是日期和时间的一系列字符串表示,日期和时间之间有一个空格。如果保证格式与您在这里显示的格式一致,则可以使用列表理解:

date = [x.split()[0] for x in date]
dt = np.array(date)

或者,如果date是一系列datetime对象,则可以使用:

^{pr2}$

编辑:如果我理解正确,这是一个包含日期和时间字符串表示的列的Pandas数据帧,以下是保留dtype=object属性的一种方法:

def trim_to_date(s): 
     return s.split()[0]
date = date[0].apply(trim_to_date) 
dt = np.array(date))

这是一种方法。在

from dateutil import *

arr = np.array(['2017-02-14 09:00:00', '2017-02-15 09:00:00', '2017-02-16 09:00:00'])

np.array([parser.parse(i).strftime('%Y-%m-%d') for i in arr])

# array(['2017-02-14', '2017-02-15', '2017-02-16'],
#       dtype='<U10')

相关问题 更多 >