2017-03-04 37 views
0

我已經在jupyter ipython筆記本上測試了這段代碼後創建了一個.py文件,這對我而言效果很好。日期時間操作在筆記本中工作,但不是在導出後作爲.py腳本

import datetime as dt 
import pandas as pd 
def CheckTrend(tdate, px, trend, df): 
    todaydate = dt.datetime.strptime(tdate,'%m/%d/%Y') 
    todaydate = todaydate - dt.timedelta(days=6) 
    df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')  
    mask = df['Date'] <= todaydate)   
    df = df.loc[mask] 
    return 

然而,當我下載了它作爲trend.py文件,並試圖從另一個筆記本打電話進行測試,它無法工作,給我的錯誤信息 -

類型錯誤:不支持的操作類型爲 - :「海峽」和「datetime.timedelta」

在筆記本,我寫了 -

import trend 
import datetime as dt 
df = pd.read_csv(filelocation, na_values=['na'], delimiter='\t', usecols=['Date','Type','Trend','Px'])  
trend.CheckTrend('12/31/2006', 10, 0, df) 

我Python編程的初學者,我能得到這方面的一些幫助嗎?

+0

什麼是文件位置? –

+0

文件位置只是相同的文件夾,我看到它包含一個csv文件,其中包含數據幀數據的所有腳本。我試圖在調用CheckTrend函數之前打印出數據幀,並且數據看起來很完美,所以肯定read_csv的處理沒有問題。 –

回答

0

這似乎稍顯陌生,也許嘗試修改「趨勢」文件,以使該行 todaydate = todaydate - dt.timedelta(days=6)

成爲

todaydate = int(todaydate) - int(dt.timedelta(days=6))

我不知道你需要圍繞第二INT timedelta,但我認爲應該修復它,因爲它似乎將「todaydate」視爲字符串

+0

剛剛嘗試,仍然得到相同的錯誤,它指向這一行,我不明白爲什麼,導致錯誤消息文本似乎是指向減法行而不是此解析行。 todaydate = dt.datetime.strptime(tdate,'%m /%d /%Y') –

相關問題