Python Pandas 字符串和系列之间的时间差

问题描述

我收到以下错误

----------------------------------------------- ---------------------------- 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...