Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python中列中的日期中减去索引日期_Python_Pandas - Fatal编程技术网

从python中列中的日期中减去索引日期

从python中列中的日期中减去索引日期,python,pandas,Python,Pandas,我有一个看起来像这样的数据框——也就是说,我有一个日期索引和一列日期。我只想从列中的日期中减去索引日期,然后将差值放在另一列中。然而,我似乎可以找到如何在计算中使用索引 Code FinishDate 1990-01-01 XYZ 1999-02-14 1990-01-02 ABC 1997-01-27 这是可行的,但也提出了一个警告: In [168]: df['DateDiff'] = df.FinishDate-df.index

我有一个看起来像这样的数据框——也就是说,我有一个日期索引和一列日期。我只想从列中的日期中减去索引日期,然后将差值放在另一列中。然而,我似乎可以找到如何在计算中使用索引

              Code   FinishDate
1990-01-01    XYZ    1999-02-14
1990-01-02    ABC    1997-01-27

这是可行的,但也提出了一个警告:

In [168]:

df['DateDiff'] = df.FinishDate-df.index
df
C:\WinPython-64bit-3.3.3.2\python-3.3.3.amd64\lib\site-packages\pandas\core\format.py:1851: DeprecationWarning: Implicitly casting between incompatible kinds. In a future numpy release, this will raise an error. Use casting="unsafe" if this is intentional.
  elif format_short and x == 0:
C:\WinPython-64bit-3.3.3.2\python-3.3.3.amd64\lib\site-packages\pandas\core\format.py:1851: DeprecationWarning: Implicitly casting between incompatible kinds. In a future numpy release, this will raise an error. Use casting="unsafe" if this is intentional.
  elif format_short and x == 0:
Out[168]:
           Code FinishDate  DateDiff
1990-01-01  XYZ 1999-02-14 3331 days
1990-01-02  ABC 1997-01-27 2582 days

[2 rows x 3 columns]
您必须确保索引和FinishDate都是日期时间而不是字符串,要进行转换,只需使用
pd.to\u datetime()

编辑

要将字符串转换为日期时间,只需执行以下操作:

df.index = pd.to_datetime(df.index)
df.FinishDate = pd.to_datetime(df.FinishDate)

我不知道这两个字段是否都需要,但如果您添加这样的日期类型的字段,这将起作用

那么根据我的示例查询是

更新
products
SET
dif_days
=DATEDIFF(
date1
date2

希望这对你有帮助


谢谢

这与问题无关,这是在Python中,而不是在SQL数据库中。这很好。谢谢你。我是Python新手,所以我想澄清一下,在本例中,我到底需要键入什么才能将字符串列更改为日期列?非常感谢。@jmiddleton我已经更新了我的答案。如果这个答案回答了你的问题,那么你可以接受它,在上下箭头的下方会有一个记号。谢谢您的帮助。@EdChum注意,在master/0.14中修复了弃用警告(我以为它是从numpy 1.9-dev开始的,但显然也是在1.8.1中!)@Jeff感谢您提供的信息,我不太理解错误,正在尝试查看是否可以将类型转换为不产生错误但失败的类型,很高兴了解更多这方面的情况