我有一个看起来像这样的DataFrame - 即我有一个日期索引,我有一列日期。我只想从列中的日期中减去索引日期,并将该差异放在另一列中。但是,我似乎可以找到如何在计算中使用索引。
Code FinishDate
1990-01-01 XYZ 1999-02-14
1990-01-02 ABC 1997-01-27
答案 0 :(得分:0)
这有效,但会发出警告:
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_datetime()
修改强>
要将字符串转换为日期时间,请执行以下操作:
df.index = pd.to_datetime(df.index)
df.FinishDate = pd.to_datetime(df.FinishDate)
我不知道两者是否都需要,但这是有效的
答案 1 :(得分:-2)
如果您添加日期类型的字段,例如http://prntscr.com/3f4seo
然后根据我的示例查询
更新products
设置dif_days
= DATEDIFF(date1
,date2
)。
希望这会对你有所帮助
感谢