【发布时间】:2020-11-05 09:21:28
【问题描述】:
我有一个带有时间列的数据框。首先 df.dtypes 返回“object”,所有值都如下所示:
2019-10-18T08:13:26.702000
我使用 pd.to_datetime 和 df.dtypes 返回 ‘datetime64[ns]’ 并且值都如下所示:
2019-10-18 08:13:26.702000
我希望能够根据时间间隔选择日期范围的范围。我第一次尝试:
df.iloc[pd.DatetimeIndex['ts'].indexer_between_time(datetime.time(2019,10,18,8,19,0),
datetime.time(2019,10,18,8,21,0))]
然后我得到 TypeError:
TypeError Traceback (most recent call last)
<ipython-input-31-9e1f5757369e> in <module>
----> 1 df.iloc[pd.DatetimeIndex['ts'].indexer_between_time(datetime.time(2019,10,18,8,19,0),
2 datetime.time(2019,10,18,8,21,0))]
3
4
5 #df.pd.DatetimeIndex['ts'].indexer_between_time(time(8:19), time(08:21:00))
TypeError: 'type' object is not subscriptable
然后我尝试通过定义一个 datetime64[ns] 变量来解决问题,然后尝试执行“大于和小于”选择。但我无法毫无错误地定义变量。 (并且不确定这种解决方法是否有效..?)
time1 = pd.datetime.datetime64[ns](2019-10-18T08:19:00.0)
给予:
SyntaxError: invalid syntax
整理数据帧的时间间隔的最佳方法是什么?我需要能够按秒排序,而不是毫秒。
如果需要,这是转换为 datetime64[ns] 后我的日期帧的一部分:
ts value
0 2019-10-18 08:13:26.702 14
1 2019-10-18 08:13:26.765 10
2 2019-10-18 08:13:26.790 5
3 2019-10-18 08:13:26.889 6
4 2019-10-18 08:13:26.901 8
5 2019-10-18 08:13:27.083 33
6 2019-10-18 08:13:27.098 21
7 2019-10-18 08:13:27.101 11
8 2019-10-18 08:13:27.129 22
9 2019-10-18 08:13:27.159 29
10 2019-10-18 08:13:27.188 7
11 2019-10-18 08:13:27.212 20
12 2019-10-18 08:13:27.228 24
13 2019-10-18 08:13:27.246 30
14 2019-10-18 08:13:27.395 34
15 2019-10-18 08:23:26.375 40
16 2019-10-18 08:23:26.527 49
17 2019-10-18 08:23:26.725 48
【问题讨论】:
标签: python pandas datetime-format