我有一个带有时间列的数据帧。首先,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
您需要
DatetimeIndex
列ts
,一种可能的解决方案是使用DatetimeIndex
或将列转换为索引并选择.index
:但更简单的解决方案是使用} ,然后使用^{} :
DatetimeIndex
将列ts
转换为^{相关问题 更多 >
编程相关推荐