我试图通过基于日期列中的值的函数转换数据框中的新列,但收到一条错误消息,指出“时间戳对象没有属性 dt”。但是,如果我在函数之外运行它,则 dt 属性可以正常工作。
任何指导将不胜感激。
此代码运行没有问题:
sample = {'Date': ['2015-07-02 11:47:00', '2015-08-02 11:30:00']}
dftest = pd.DataFrame.from_dict(sample)
dftest['Date'] = pd.to_datetime(dftest['Date'])
display(dftest.info())
dftest['year'] = dftest['Date'].dt.year
dftest['month'] = dftest['Date'].dt.month
Run Code Online (Sandbox Code Playgroud)
这段代码给了我错误信息:
sample = {'Date': ['2015-07-02 11:47:00', '2015-08-02 11:30:00']}
dftest = pd.DataFrame.from_dict(sample)
dftest['Date'] = pd.to_datetime(dftest['Date'])
def CALLYMD(dftest):
if dftest['Date'].dt.month>9:
return str(dftest['Date'].dt.year) + '1231'
elif dftest['Date'].dt.month>6:
return str(dftest['Date'].dt.year) + '0930'
elif dftest['Date'].dt.month>3:
return str(dftest['Date'].dt.year) + '0630'
else:
return str(dftest['Date'].dt.year) + '0331'
dftest['CALLYMD'] = dftest.apply(CALLYMD, axis=1)
Run Code Online (Sandbox Code Playgroud)
最后,我愿意接受任何关于如何改进此代码的建议,因为我仍在学习。
我正在尝试访问干旱监测网站并告诉它选择显示县数据。我可以让我的代码导航到网站,然后点击下拉菜单,但我无法输入“县”。我的代码到达最后一行,然后给出错误:“无法聚焦元素”。
任何帮助将不胜感激,因为我对 Selenium 很陌生。
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('http://droughtmonitor.unl.edu/Data/DataDownload/ComprehensiveStatistics.aspx')
browser.maximize_window()
dropdown = browser.find_element_by_xpath("""//*
[@id="dnn_ctr1009_USDMservice_CompStats_2017_aoiType_chosen"]""")
dropdown.click()
dropdown.send_keys('county')
dropdown.submit()
print("I'm done")
Run Code Online (Sandbox Code Playgroud)