因此,我有一个名为trips
的数据帧,包含以下信息:
route_id service_id shape_id trip_id
0 BX12 GH_B6-Weekday BX120805 GH_B6-Weekday-004000_BX12_1
1 BX12 GH_B6-Weekday BX120809 GH_B6-Weekday-009000_BX12_1
2 BX12 GH_B6-Weekday BX120792 GH_B6-Weekday-013000_BX12_1
3 BX12 GH_B6-Weekday BX120809 GH_B6-Weekday-017000_BX12_1
4 BX12 GH_B6-Weekday BX120792 GH_B6-Weekday-021000_BX12_1
...
我还有一个名为invalidTrips
的系列,包含以下信息:
trip_id
11760139-BPPB6-BP_B6-Weekday-10 16
11760139-BPPB6-BP_B6-Weekday-10-SDon 16
11760140-BPPB6-BP_B6-Weekday-10 19
11760140-BPPB6-BP_B6-Weekday-10-SDon 19
11760141-BPPB6-BP_B6-Weekday-10 16
...
我该如何选择trips
中没有trip_id
与invalid_trips
中的trip_id
匹配的所有行?你知道吗
编辑:现在我有了这个代码:
# Grab the number of trips made outside min and max hour.
tooEarly = stopTimes['arrival_time'] < base_mintime
tooLate = stopTimes['departure_time'] > base_maxtime
invalidTrips = stopTimes[(tooEarly | tooLate)].groupby('trip_id').size()
# Filter out the invalid trips.
print(invalidTrips.size)
print(trips.size)
in_validTrips = ~trips.trip_id.isin(invalidTrips)
validTrips = trips[in_validTrips][['route_id', 'service_id', 'shape_id']]
print(validTrips.size)
不管出于什么原因,尽管invalidTrips.size
可以根据base_mintime
和base_maxtime
而变化,但validTrips.size
保持不变,即使我认为它与invalidTrips.size
相反。为什么会这样?你知道吗
(关于进一步的背景信息,这些都是从GTFS数据中提取的。)
更新:
尝试
isin()
函数和~
运算符根据@EdChum在注释中的更正-如果
invalid_trips
是系列类型:测试:
相关问题 更多 >
编程相关推荐