[英]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.