Python 功能赢得';t应用于熊猫数据帧,获取语法错误

Python 功能赢得';t应用于熊猫数据帧,获取语法错误,python,pandas,dataframe,Python,Pandas,Dataframe,我试图将此函数应用于pandas数据帧,以查看出租车上下车时间是否在我使用下面的arrivemin、ArriveMax变量创建的范围内 如果时间真的在这个范围内,我想保留这一行。如果超出范围,我想从数据帧中删除它 gametimestart = df['Start.Time'] gametimeend = df['End.Time'] arrivemin = gametimestart - datetime.timedelta(minutes=120) arrivemax = gameti

我试图将此函数应用于pandas数据帧,以查看出租车上下车时间是否在我使用下面的arrivemin、ArriveMax变量创建的范围内

如果时间真的在这个范围内,我想保留这一行。如果超出范围,我想从数据帧中删除它

gametimestart = df['Start.Time'] 
gametimeend = df['End.Time'] 
arrivemin = gametimestart - datetime.timedelta(minutes=120) 
arrivemax = gametimeend - datetime.timedelta(minutes = 30) 
departmin = gametimeend - datetime.timedelta(minutes = 60) 
departmax = gametimeend + datetime.timedelta(minutes = 90)
df_filtered = df[(df['pickup_datetime'] > arrivemin) &
                 (df['pickup_datetime'] < arrivemax) &
                 (df['dropoff_datetime'] > departmin) & 
                 (df['dropoffdatetime'] < departmax)]
Start.Time、End.Time等都是datetime对象,因此时间功能应该可以正常工作

def time_function(df, row):
    gametimestart = df['Start.Time'] 
    gametimeend = df['End.Time'] 
    arrivemin = gametimestart - datetime.timedelta(minutes=120) 
    arrivemax = gametimeend - datetime.timedelta(minutes = 30) 
    departmin = gametimeend - datetime.timedelta(minutes = 60) 
    departmax = gametimeend + datetime.timedelta(minutes = 90)
    for not i in ((df['pickup_datetime'] > arrivemin) & (df['pickupdatetime'] < arrivemax) &(df['dropoff_datetime'] > departmin) & (df['dropoffdatetime'] < departmax)):
        df = df.drop[df[i.index]]
    return


for index, row in yankdf:
    time_function(yankdf, row)
def time_函数(df,行):
gametimestart=df['Start.Time']
gametimeend=df['End.Time']
arrivemin=gametimestart-datetime.timedelta(分钟=120)
arrivemax=gametimeend-datetime.timedelta(分钟=30)
departmin=gametimeend-datetime.timedelta(分钟=60)
departmax=gametimeend+datetime.timedelta(分钟=90)
对于非i in((df['picku datetime']>arrivemin)&(df['pickupdatetime']departmin)&(df['dropoffdatetime']
继续获取此语法错误:

 File "<ipython-input-25-bda6fb2db429>", line 17
    for not i in (((row['pickup_datetime'] > arrivemin) & (row['pickupdatetime'] < arrivemax)) | ((row['dropoff_datetime'] > departmin) & (row['dropoffdatetime'] < departmax)):
          ^
SyntaxError: invalid syntax
文件“”,第17行
对于不在((第['Picku_datetime']>arrivemin行)和第['pickupdatetime']departmin行)和第['dropoffdatetime']
我认为您不需要该函数。只需执行一个基本子集,df_filtered应该是您的过滤数据帧

gametimestart = df['Start.Time'] 
gametimeend = df['End.Time'] 
arrivemin = gametimestart - datetime.timedelta(minutes=120) 
arrivemax = gametimeend - datetime.timedelta(minutes = 30) 
departmin = gametimeend - datetime.timedelta(minutes = 60) 
departmax = gametimeend + datetime.timedelta(minutes = 90)
df_filtered = df[(df['pickup_datetime'] > arrivemin) &
                 (df['pickup_datetime'] < arrivemax) &
                 (df['dropoff_datetime'] > departmin) & 
                 (df['dropoffdatetime'] < departmax)]
gametimestart=df['Start.Time']
gametimeend=df['End.Time']
arrivemin=gametimestart-datetime.timedelta(分钟=120)
arrivemax=gametimeend-datetime.timedelta(分钟=30)
departmin=gametimeend-datetime.timedelta(分钟=60)
departmax=gametimeend+datetime.timedelta(分钟=90)
df_filtered=df[(df['picku_datetime']>arrivemin)&
(df['picku datetime']departmin)和
(df['dropoffdatetime']
嗯,你的时间函数体缩进错误。可能是吗?哎呀……那只是一个复制粘贴错误。请在上面编辑你的问题,并包括完整的错误回溯。有趣的是……我的错误消息是重复的,似乎错误是“不是”而不是“离开”