Pandas:选择空或早于今天的行?

时间:2016-12-29 18:40:12

标签: python pandas

我必须在Pandas数据帧中实现以下SQL的等价物:

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

基本上,我想选择date的值大于as_of_date的行。有些行的日期为null,在这种情况下,如果as_of_date小于或等于今天的日期,我只想选择这些行。

Pandas有没有办法做到这一点?

2 个答案:

答案 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我可以为您提供更多详细信息。