【发布时间】:2016-02-23 08:14:28
【问题描述】:
我正在尝试将此函数应用于 pandas 数据框,以查看出租车上车或下车时间是否在我使用下面的到达最小值创建的范围内,到达最大值变量。
如果时间确实在范围内,我想保留该行。如果超出范围,我想将其从数据框中删除。
Start.Time、End.Time 等都是日期时间对象,因此时间功能应该可以正常工作。
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)
不断收到此语法错误:
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
【问题讨论】:
-
好吧,你的缩进对于 time_function 的主体是错误的。会这样吗?
-
哎呀...这只是一个复制粘贴错误。以上编辑
-
请edit您的问题并包括完整的错误回溯。
-
有趣...我的错误信息在重复的行上,看来错误是“not”而不是departmin