【发布时间】:2019-12-20 20:50:56
【问题描述】:
我想运行此代码,以便通过减去我的数据框中的两列“promo_end_dt”和“promo_start_dt”来提取以天为单位的促销期。这两列中的每一列都具有以下格式:YYYY-MM-DD
#promotions period
from datetime import date as dt
transactions['promo_start_dt'] = pd.to_datetime(promos['promo_start_dt'])
transactions['promo_end_dt'] = pd.to_datetime(promos['promo_end_dt'])
#promos['promos_period'] = promos['promo_end_dt'].sub(promos['promo_start_dt'],axis=0)
promos['promos_period'] = (promos['promo_end_dt'] - promos['promo_start_dt']).dt.days
#promos
但是我不断收到此错误消息:
TypeError Traceback(最近一次调用最后一次) ~\Anaconda3\lib\site-packages\pandas\core\ops__init__.py in na_op(x, y) 967尝试: --> 968 结果 = 表达式.evaluate(op, str_rep, x, y, **eval_kwargs) 969 除了类型错误:
~\Anaconda3\lib\site-packages\pandas\core\computation\expressions.py in evaluate(op, op_str, a, b, use_numexpr, **eval_kwargs) 220 如果使用_numexpr: --> 221 返回 _evaluate(op, op_str, a, b, **eval_kwargs) 222 返回_evaluate_standard(op,op_str,a,b)
~\Anaconda3\lib\site-packages\pandas\core\computation\expressions.py in _evaluate_numexpr(op, op_str, a, b, truediv, reversed, **eval_kwargs) 126 如果结果为无: --> 127 结果 = _evaluate_standard(op, op_str, a, b) 128
~\Anaconda3\lib\site-packages\pandas\core\computation\expressions.py in _evaluate_standard(op, op_str, a, b, **eval_kwargs) 69 与 np.errstate(all="ignore"): ---> 70 返回操作(a,b) 71
TypeError: 不支持的操作数类型 -: 'str' 和 'str'
在处理上述异常的过程中,又发生了一个异常:
TypeError Traceback(最近一次调用最后一次) 在 8 9 #promos['promos_period'] = promos['promo_end_dt'].sub(promos['promo_start_dt'],axis=0) ---> 10 个促销['promos_period'] = (promos['promo_end_dt'] - promos['promo_start_dt']).dt.days 11 #促销
~\Anaconda3\lib\site-packages\pandas\core\ops__init__.py 在包装器中(左,右) 1046 1047 与 np.errstate(all="ignore"): -> 1048 结果 = na_op(左值,右值) 第1049章 1050 left, result, index=left.index, name=res_name, dtype=None
~\Anaconda3\lib\site-packages\pandas\core\ops__init__.py in na_op(x, y) 第968章 969 除了类型错误: --> 970 结果 = masked_arith_op(x, y, op) 971 第972章
~\Anaconda3\lib\site-packages\pandas\core\ops__init__.py in masked_arith_op(x, y, op) 445 如果 mask.any(): 446 与 np.errstate(all="ignore"): --> 447 结果[掩码] = op(xrav[掩码], com.values_from_object(yrav[掩码])) 448 449 其他:
TypeError: 不支持的操作数类型 -: 'str' 和 'str'
【问题讨论】:
-
您正在将
transactions数据帧中的日期时间更改为日期时间,然后在promos数据帧中调用该操作。 -
:有道理!谢谢
标签: python pandas data-analysis