我必须在Pandas数据帧中实现以下SQL的等价物:
select * from table where ISNULL(date, GETDATE()) >= as_of_date
基本上,我想选择date的值大于as_of_date
的行。有些行的日期为null
,在这种情况下,如果as_of_date小于或等于今天的日期,我只想选择这些行。
Pandas有没有办法做到这一点?
答案 0 :(得分:2)
您可能需要:
from datetime import date
df[df.date.fillna(date.today()) >= as_of_date]
您还需要确保date
列和as_of_date
都是日期时间对象,否则,请使用pd.to_datetime()
进行转换:
df['date'] = pd.to_datetime(df.date)
as_of_date = pd.to_datetime(as_of_date)
答案 1 :(得分:0)
df[(df['date'] < datetime.now().date()) & (df['date'] == None)]
但请注意,如果您提供相同的代码,这只是一个示例,df我可以为您提供更多详细信息。