2016-12-29 22 views
-2

我要實現以下SQL的一個數據幀大熊貓相當於:熊貓:選擇無效或早於今天的行?

select * from table where ISNULL(date, GETDATE()) >= as_of_date 

基本上,我想選擇的行,其中日期的值大於as_of_date。有一些行的日期是null,在這種情況下,如果as_of_date小於或等於今天的日期,我只想選擇那些行。

有沒有辦法在熊貓做到這一點?

+2

是的,有是。你有什麼嘗試? – 2016-12-29 18:41:19

+0

'df [(df.date或date.today())<= as_of_date)]'返回錯誤'系列的真值不明確.' – user1742188

+0

'as_of_date'是標量或其他系列? – Psidom

回答

2

您可能需要:

from datetime import date 
df[df.date.fillna(date.today()) >= as_of_date] 

您還需要確保date柱和as_of_date都是datetime對象,如果沒有,用pd.to_datetime()轉換:

df['date'] = pd.to_datetime(df.date) 
as_of_date = pd.to_datetime(as_of_date) 
0
df[(df['date'] < datetime.now().date()) & (df['date'] == None)] 

但請注意,這只是一個例子,如果您提供相同的代碼和df我可以幫助您獲得更多的細節。