在python中忽略未来日期

在python中忽略未来日期,python,datetime,pandas,dataframe,Python,Datetime,Pandas,Dataframe,我有一个很大的数据库,我只想在最后一周阅读我的python代码 然而,有人在数据库中输入了一个错误,所以将来有一个日期会把一切都抛在脑后 输入: recvd_dttm 6/5/2015 18:28:50 PM 6/5/2015 14:25:43 PM 9/10/2015 21:45:12 PM 6/5/2015 14:30:43 PM 6/5/2015 14:32:33 PM 6/5/2015 14:33:45 PM 迄今为止的代码: import datetime as datetime

我有一个很大的数据库,我只想在最后一周阅读我的python代码

然而,有人在数据库中输入了一个错误,所以将来有一个日期会把一切都抛在脑后

输入:

recvd_dttm
6/5/2015 18:28:50 PM
6/5/2015 14:25:43 PM
9/10/2015 21:45:12 PM
6/5/2015 14:30:43 PM
6/5/2015 14:32:33 PM
6/5/2015 14:33:45 PM
迄今为止的代码:

import datetime as datetime

#Create a dataframe with the data we are interested in
df1 =pd.read_csv('MYDATA.csv')

#This section selects the last week of data
# convert strings to datetimes
df1['recvd_dttm'] = pd.to_datetime(df1['recvd_dttm'])


# get first and last datetime for final week of data   
range_max = df1['recvd_dttm'].max()
range_min = range_max - datetime.timedelta(days=7)

# take slice with final week of data
df2 = df1[(df1['recvd_dttm'] >= range_min) & 
               (df1['recvd_dttm'] <= range_max)]
但是这些值是不可比较的,我不知道如何为日期选择倒数第二个值,因为max()-1显然不起作用。有人有什么想法吗?提前谢谢

您可以使用

mask = df1['recvd_dttm'] <= datetime.datetime.now()
df1 = df1.loc[mask]

mask=df1['recvd\u dttm']我认为您的问题在于
to\u datetime
没有按您期望的方式工作。您需要告诉它预期的具体日期格式

import datetime as datetime
import pandas as pd

# prepare the dataframe
dates = ['6/5/2015 18:28:50 PM', '6/5/2015 14:25:43 PM', '9/10/2015 21:45:12 PM', '6/5/2015 14:30:43 PM', '6/5/2015 14:32:33 PM', '6/5/2015 14:33:45 PM']
df1 = pd.DataFrame({"recvd_dttm": dates})

# properly convert dates
df1['recvd_dttm'] = pd.to_datetime(df1['recvd_dttm'], format='%m/%d/%Y %H:%M:%S %p')

# drop rows with dates in the future
df1 = df1[df1['recvd_dttm'] < datetime.datetime.now()]
将datetime导入为datetime
作为pd进口熊猫
#准备数据帧
日期=['6/5/2015 18:28:50 PM','6/5/2015 14:25:43 PM','9/10/2015 21:45:12 PM','6/5/2015 14:30:43 PM','6/5/2015 14:32:33 PM','6/5/2015 14:33:45 PM']
df1=pd.DataFrame({“recvd_dttm”:dates})
#正确转换日期
df1['recvd_dttm']=pd.to_datetime(df1['recvd_dttm'],格式=“%m/%d/%Y%H:%m:%S%p”)
#删除将来有日期的行
df1=df1[df1['recvd_dttm']
import datetime as datetime
import pandas as pd

# prepare the dataframe
dates = ['6/5/2015 18:28:50 PM', '6/5/2015 14:25:43 PM', '9/10/2015 21:45:12 PM', '6/5/2015 14:30:43 PM', '6/5/2015 14:32:33 PM', '6/5/2015 14:33:45 PM']
df1 = pd.DataFrame({"recvd_dttm": dates})

# properly convert dates
df1['recvd_dttm'] = pd.to_datetime(df1['recvd_dttm'], format='%m/%d/%Y %H:%M:%S %p')

# drop rows with dates in the future
df1 = df1[df1['recvd_dttm'] < datetime.datetime.now()]