0

I am getting the following error:

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py in na_arithmetic_op(left, right, op, is_cmp) 142 try: --> 143 result = expressions.evaluate(op, left, right) 144 except TypeError:

~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py in evaluate(op, a, b, use_numexpr) 232 if use_numexpr: --> 233 return _evaluate(op, op_str, a, b) # type: ignore 234 return _evaluate_standard(op, op_str, a, b)

~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py in _evaluate_numexpr(op, op_str, a, b) 118 if result is None: --> 119 result = _evaluate_standard(op, op_str, a, b) 120

~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/expressions.py in _evaluate_standard(op, op_str, a, b) 67 with np.errstate(all="ignore"): ---> 68 return op(a, b) 69

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'builtin_function_or_method'

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last) in ----> 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 in new_method(self, other) 63 other = item_from_zerodim(other) 64 ---> 65 return method(self, other) 66 67 return new_method

~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/init.py in wrapper(left, right) 341 lvalues = extract_array(left, extract_numpy=True) 342 rvalues = extract_array(right, extract_numpy=True) --> 343 result = arithmetic_op(lvalues, rvalues, op) 344 345 return left._construct_result(result, name=res_name)

~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py in arithmetic_op(left, right, op) 188 else: 189 with np.errstate(all="ignore"): --> 190 res_values = na_arithmetic_op(lvalues, rvalues, op) 191 192 return res_values

~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py in na_arithmetic_op(left, right, op, is_cmp) 148 # will handle complex numbers incorrectly, see GH#32047 149 raise --> 150 result = masked_arith_op(left, right, op) 151 152 if is_cmp and (is_scalar(result) or result is NotImplemented):

~/anaconda3/lib/python3.8/site-packages/pandas/core/ops/array_ops.py in masked_arith_op(x, y, op) 94 else: 95 if not is_scalar(y): ---> 96 raise TypeError( 97 f"Cannot broadcast np.ndarray with operand of type { type(y) }" 98 )

TypeError: Cannot broadcast np.ndarray with operand of type <class 'builtin_function_or_method'>

when performing this:

df['snap_ts'].dt.time - datetime.strptime('14:30:00', '%H:%M:%S')  

df['snap_ts'].dt.time is equivalent to this:

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

and it's a pandas.core.series.Series

What am I doing wrong?

2
  • looks like an object(from the dtype) and not a datetime series Commented Jul 26, 2021 at 4:41
  • sammywemmy then? Commented Jul 26, 2021 at 4:46

1 Answer 1

1

Are you looking for that?

df['snap_ts'].sub(pd.Timedelta('14:30:00')).dt.time
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.