【发布时间】:2021-12-10 08:11:33
【问题描述】:
我有一个带有超过 200 万个时间戳(如下)的 pandas 数据框,我想用它来创建以下散点图:
06/22/2006 09:54:11 PM
我很难将此时间戳分成两列:date 和 time。
以下是数据框的内容示例。
{'STARFIRE_INCIDENT_ID': {0: 500127850130001.0, 1: 500133070120471.0, 2: 500103630140001.0, 3: 500175150150001.0, 4: 500171620150003.0}, 'INCIDENT_DATETIME': {0: '01/01/2005 12:00:01 AM', 1: '01/01/2005 12:00:03 AM', 2: '01/01/2005 12:01:02 AM', 3: '01/01/2005 12:01:42 AM', 4: '01/01/2005 12:01:45 AM'}, 'ALARM_BOX_BOROUGH': {0: 'RICHMOND / STATEN ISLAND', 1: 'BRONX', 2: 'BROOKLYN', 3: 'QUEENS', 4: 'QUEENS'}}
我想要做的是将INCIDENT_DATETIME 拆分为INCIDENT_DATE 和INCIDENT_TIME。
我尝试了df['time'] = df['INCIDENT_DATETIME'].dt.time,但出现以下错误。
AttributeError: Can only use .dt accessor with datetimelike values
【问题讨论】:
-
您需要:"df['INCIDENT_DATETIME'] = pd.to_datetime(df['INCIDENT_DATETIME'])" 将其从 str 转换为时间戳
-
我认为
df['INCIDENT_DATETIME'] = df['INCIDENT_DATETIME'].astype('datetime64[ns]')可能会快一些,考虑到几百万个时间戳。 -
到目前为止,它们都花费了太长时间。一旦我有时间,我会再试一次
-
您需要成为实际的 datetime dtype 吗?您可以使用 split(' ') 并创建两列。它们都是字符串,但没有转换然后拆分。