繁体   English   中英

从python中的时间戳中提取小时

[英]Extract hour from timestamp in python

我正在尝试提取小时数,看看该值是否在特定范围内。 而且我得到一个错误,说: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() 列类型为datetime64。

我的数据如下所示:(数据框存储的数据完全相同)

captureTime     id      occupancy   power   temperature
6/26/2017 0:25  1345    0           1.2     72.96

时间栏如下所示:6/26/17 0:04

我的代码如下:

if ( (df_mean['date'].dt.hour >= 6) & (df_mean['date'].dt.hour < 20) ):

我也尝试过这个:

if ( (df_mean['captureTime'].dt.hour >= 6) and (df_mean['captureTime'].dt.hour < 20) ):

有什么建议吗?

这是错误的:

if ( (df_mean['date'].dt.hour >= 6) & (df_mean['date'].dt.hour < 20) ):

您正在将布尔数组视为布尔值。 不是,它是一个数组。 一次采取一步:

match = df_mean['date'].dt.hour.between(6, 19)

然后,您可以执行以下操作:

if match.any():

if match.all():

if match.sum() > len(df) / 2:

或者,您可以子集原始数据:

good_data = df_mean[match]
bad_data = df_mean[~match]

等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM