我认为这应该很简单,但我所看到的是涉及迭代数据帧日期字段以确定两个日期之间差异的技术.我遇到了麻烦.我熟悉MSSQL DATEDIFF所以我认为Pandas datetime会有类似的东西.我也许会这样,但我想念它.
是否有一种Pandonic方法可以将月数确定为两个日期(日期时间)之间的整数而无需迭代?请记住,可能有数百万行,因此性能是一个考虑因素.
日期是datetime对象,结果是这样的 - 新列是Month:
Date1 Date2 Months
2016-04-07 2017-02-01 11
2017-02-01 2017-03-05 1
Run Code Online (Sandbox Code Playgroud) 我一直无法弄清楚如何让变量工作Selenium.这篇文章似乎有所帮助(变量在括号内不起作用)但我仍然无法使它工作.
当我使用它的实际值时它起作用.在这种情况下AL-Alabama.我创建了一个名为state的变量,以便我可以在我的函数中调用它.我有13个州要经历.
driver.find_element_by_xpath("//option[@value='AL-Alabama']").click()
Run Code Online (Sandbox Code Playgroud)
这个使用状态变量,在查看错误消息时,它将变量值显示为AL-Alabama.所以看起来它正在引用网页中的正确值.不知道我错过了什么或为什么它不起作用.任何指导将不胜感激.
driver.find_element_by_xpath('//option[@value=' + state + ']').click()
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//option[@value=AL-Alabama]"}
Run Code Online (Sandbox Code Playgroud) 我有一个示例数据框:
df = pd.DataFrame({'Account':['1234', '1234', '4567', '4567'],
'Date':['12/5/2017', '12/5/2017', '12/10/2017', '12/11/2017']})
df.Date = pd.to_datetime(df.Date)
df.head()
Account Date
0 1234 2017-12-05
1 1234 2017-12-05
2 4567 2017-12-10
3 4567 2017-12-11
Run Code Online (Sandbox Code Playgroud)
我想添加一个名为MaxDate的列,其中将包含每个帐户的最后日期。最终结果如下:
df = pd.DataFrame({'Account':['1234', '1234', '4567', '4567'],
'Date':['12/5/2017', '12/5/2017', '12/10/2017', '12/11/2017'],
'MaxDate':['12/5/2017', '12/5/2017', '12/11/2017', '12/11/2017']})
df.Date = pd.to_datetime(df.Date)
df.MaxDate = pd.to_datetime(df.MaxDate)
df.head()
Account Date MaxDate
0 1234 2017-12-05 2017-12-05
1 1234 2017-12-05 2017-12-05
2 4567 2017-12-10 2017-12-11
3 4567 2017-12-11 2017-12-11
Run Code Online (Sandbox Code Playgroud)
我不确定是否应该在数据帧上迭代还是?请注意,数据集可以是一百万行,因此性能是一个考虑因素。任何指导表示赞赏。