Python 无法将一个日期时间列与另一个日期时间列相减,subtract不能使用类型为dtype(';S1';)和dtype(';<;M8[ns]';)的操作数

Python 无法将一个日期时间列与另一个日期时间列相减,subtract不能使用类型为dtype(';S1';)和dtype(';<;M8[ns]';)的操作数,python,pandas,datetime,Python,Pandas,Datetime,我有两个pandas列,都转换为datetime格式,不能从另一个中减去一个 df['date_listed'] = pd.to_datetime(df['date_listed'], errors='coerce').dt.floor('d') df['date_unconditional'] = pd.to_datetime(df['date_unconditional'], errors='coerce').dt.floor('d') print df['date_listed'][:5

我有两个pandas列,都转换为datetime格式,不能从另一个中减去一个

df['date_listed'] = pd.to_datetime(df['date_listed'], errors='coerce').dt.floor('d')
df['date_unconditional'] = pd.to_datetime(df['date_unconditional'], errors='coerce').dt.floor('d')

print df['date_listed'][:5]
print df['date_unconditional'][:5]

0   2013-01-01
1   2013-01-01
2   2015-04-08
3   2016-03-24
4   2016-04-27
Name: date_listed, dtype: datetime64[ns]
0   2018-10-15
1   2018-06-12
2   2018-08-28
3   2018-08-29
4   2018-10-29
Name: date_unconditional, dtype: datetime64[ns]
格式似乎是正确的,可以进行减法运算,但我犯了一个错误:

df['date_listed_to_sale'] = (df['date_sold'] - df['date_listed']).dt.days
print df['date_listed_to_sale'][:5]



TypeErrorTraceback (most recent call last)
<ipython-input-139-85a5efbde0f1> in <module>()
----> 1 df['date_listed_to_sale'] = (df['date_sold'] - df['date_listed']).dt.days
      2 print df['date_listed_to_sale'][:5]

/Users/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc in wrapper(left, right)
   1581             rvalues = rvalues.values
   1582 
-> 1583         result = safe_na_op(lvalues, rvalues)
   1584         return construct_result(left, result,
   1585                                 index=left.index, name=res_name, dtype=None)

/Users/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc in safe_na_op(lvalues, rvalues)
   1531             if is_object_dtype(lvalues):
   1532                 return libalgos.arrmap_object(lvalues,
-> 1533                                               lambda x: op(x, rvalues))
   1534             raise
   1535 

pandas/_libs/algos.pyx in pandas._libs.algos.arrmap()

/Users/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc in <lambda>(x)
   1531             if is_object_dtype(lvalues):
   1532                 return libalgos.arrmap_object(lvalues,
-> 1533                                               lambda x: op(x, rvalues))
   1534             raise
   1535 

TypeError: ufunc subtract cannot use operands with types dtype('S1') and dtype('<M8[ns]')
df['date\'u listed\'u to\'u sale']=(df['date\'u sale']-df['date\'u listed'].dt.days
打印df[“上市日期到销售日期”][:5]
TypeErrorTraceback(最近一次呼叫上次)
在()
---->1 df[“上市日期”]=(df[“出售日期”]-df[“上市日期”])。dt.days
2打印df[“上市日期到销售日期”][:5]
/包装器中的Users/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc(左、右)
1581 rvalues=rvalues.values
1582
->1583结果=安全值(左值、右值)
1584返回构造_结果(左,结果,
1585 index=left.index,name=res\u name,dtype=None)
/用户/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc(左值、右值)
1531如果是对象类型(左值):
1532返回libalgos.arrmap_对象(左值,
->1533λx:op(x,右值))
1534提高
1535
熊猫/_libs/algos.pyx在熊猫中。_libs.algos.arrmap()
/(x)中的Users/virt_env/virt1/lib/python2.7/site-packages/pandas/core/ops.pyc
1531如果是对象类型(左值):
1532返回libalgos.arrmap_对象(左值,
->1533λx:op(x,右值))
1534提高
1535

TypeError:ufunc subtract不能使用dtype('S1')和dtype('类型的操作数。我认为您需要更改格式以获得与时间戳的差异

例:

o/p:


我认为您需要更改格式以获得与时间戳的差异

例:

o/p:


如有必要,更改第一列foir减去:

df['date_listed_to_sale'] = (df['date_unconditional'] - df['date_listed']).dt.days
或者将第一列
date\u sall
转换为datetime:

df['date_sold'] = pd.to_datetime(df['date_sold'], errors='coerce').dt.floor('d')
df['date_listed_to_sale'] = (df['date_sold'] - df['date_listed']).dt.days

如有必要,更改第一列foir减去:

df['date_listed_to_sale'] = (df['date_unconditional'] - df['date_listed']).dt.days
或者将第一列
date\u sall
转换为datetime:

df['date_sold'] = pd.to_datetime(df['date_sold'], errors='coerce').dt.floor('d')
df['date_listed_to_sale'] = (df['date_sold'] - df['date_listed']).dt.days

错误表示“S1”-一个bytestring字符中的第一个操作数,
df['date\u selled']
。错误表示“S1”-一个bytestring字符中的第一个操作数,
df['date\u selled']