Python 在linux中从数据帧列中减去日期

Python 在linux中从数据帧列中减去日期,python,linux,python-3.x,pandas,Python,Linux,Python 3.x,Pandas,我有以下日期时间日期值: a_date = datetime.date(2018,9,13) 以及具有以下列的数据帧df: df['somedates'] 0 2010-07-27 1 1999-02-15 2 1997-07-15 3 2012-11-15 4 1999-02-17 5 1999-02-16 6 1999-02-17 7 2012-10-12 8 1999-09-22 9 1

我有以下日期时间日期值:

a_date = datetime.date(2018,9,13)
以及具有以下列的数据帧
df

df['somedates']

0      2010-07-27
1      1999-02-15
2      1997-07-15
3      2012-11-15
4      1999-02-17
5      1999-02-16
6      1999-02-17
7      2012-10-12
8      1999-09-22
9      1998-05-09
10     1998-05-09

Name: somedates, Length: 11, dtype: datetime64[ns]
我可以在我的Windows机器上执行以下操作,并且工作正常

df['somedates'] = a_date - df['somedates']
但是在ubuntu上,它会引发以下错误:

不支持的操作数类型为-:“DatetimeIndex”和“datetime.date”

有人能给我指出正确的方向吗?为什么它运行在windows上而不是Linux上

更多详细信息

print(type(a_date))
<class 'datetime.date'>

print(type(df['somedates']))
<class 'pandas.core.series.Series'>

print(type(df['somedates'][0]))
<class 'pandas._libs.tslib.Timestamp'>
打印(键入(日期))
打印(键入(df['somedates']))
打印(键入(df['somedates'][0]))
由于我无法发表评论:

这不起作用的原因是,您试图将datetime的datetimes版本与datetime的pythons版本一起使用。在您的情况下,我将使用pd将所有内容转换为相同的日期时间。to_datetime():


我还要看一看

听起来更像是熊猫/Python版本的问题…@xyzjayne我检查了两次,结果不是…我可以用我的Windows机器复制错误,因此它可能与您正在使用的操作系统无关…您如何在Windows上复制该错误?如果你能分享这一点,那将是非常有用的。在这两个操作系统上,Python版本都是3.6和pandas 0.22。你会碰巧知道为什么它在我的Windows机器上运行,即使没有将
a_date
转换为
pd.to_datetime()
?@AnarKi很抱歉反应太晚,但很遗憾我没有=/
import pandas as pd
import datetime

a_date = datetime.date(2018,9,13) # we can change this to a_date = pd.to_datetime('2018-9-13')

df = pd.DataFrame()
df['somedates'] = ['2010-07-27', '1999-02-15', '1997-07-15','2012-11-15','2012-11-15','1999-02-17']

df['somedates'] = pd.to_datetime(df['somedates'])
df['somedates'] = pd.to_datetime(a_date) - df['somedates'] # if we enact the change above then we can simply do a_date - df['somedates']

display(df)
    somedates
0   2970 days
1   7150 days
2   7730 days
3   2128 days
4   2128 days
5   7148 days