问题描述
我收到以下错误:
----------------------------------------------- ---------------------------- TypeError Traceback(最近一次调用 最后的) ~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py 在 na_arithmetic_op(left,right,op,is_cmp) 142 尝试: --> 143 结果 = 表达式.评估(操作,左,右) 144 除了类型错误:
~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py 在评估(op,a,b,use_numexpr) 第232话 --> 233 return _evaluate(op,op_str,a,b) # 类型:忽略 第234话
~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py 在 _evaluate_numexpr(op,b) 118 如果结果为无: --> 119 结果 = _evaluate_standard(op,b) 120
~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py 在 _evaluate_standard(op,b) 67 与 np.errstate(all="ignore"): ---> 68 返回操作(a,b) 69
TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'builtin_function_or_method'
在处理上述异常的过程中,又发生了一个异常:
TypeError Traceback(最近一次调用 最后)在 ----> 1 NVAX['snap_ts'].dt.time - datetime.strptime('14:30:00','%H:%M:%s').time
~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/common.py 中 新方法(自我,其他) 63 其他 = item_from_zerodim(其他) 64 ---> 65 返回方法(自己,其他) 66 67 返回新方法
~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/init.py 中 包装(左,右) 第341话 第 342 章 --> 343 结果 = 算术运算(左值,右值,运算) 344 第345回
~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py 在算术运算(左,右,运算) 188 其他: 189 与 np.errstate(all="ignore"): --> 190 res_values = na_arithmetic_op(lvalues,rvalues,op) 191 192 返回 res_values
~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py 在 na_arithmetic_op(left,is_cmp) 148 # 将错误地处理复数,参见 GH#32047 149 加薪 --> 150 结果 = masked_arith_op(left,op) 151 152如果is_cmp和(is_scalar(结果)或结果未实现):
~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py 在 masked_arith_op(x,y,op) 94 其他: 95 如果不是 is_scalar(y): ---> 96 引发类型错误( 97 f“无法使用类型为 { type(y) } 的操作数广播 np.ndarray” 98)
TypeError: 无法使用
执行此操作时:
df['snap_ts'].dt.time - datetime.strptime('14:30:00','%H:%M:%s')
df['snap_ts'].dt.time 相当于:
0 14:30:10
1 14:30:20
2 14:30:30
3 14:30:40
4 14:30:50
...
157763 19:59:20
157764 19:59:30
157765 19:59:40
157766 19:59:50
157767 20:00:00
Name: snap_ts,Length: 157768,dtype: object
这是一个pandas.core.series.Series
我做错了什么?
解决方法
你在找那个吗?
df['snap_ts'].sub(pd.Timedelta('14:30:00')).dt.time