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