It may be that the intersect tool is splitting the lines as expected. The issue is coming from the type of feature being produced. It looks like the output is a multipart polyline. Which could best be explained as a line having multipart parts (sections) but the geometry of the line is held within one feature or FID.
There is a tool in ArcMap called the "...
You have two options I can think of off hand.
You could use the select by location tool, and select all polygons that intersect the points. Then reverse the selection in the attribute table, thereby switching the selection from those that have points within them, to those that do not interact with the points at all.
You could run the spatial join ...
Look at the How to find the intersection areas of overlapping buffer zones in single shapefile? and the solution is to
1) use the properties of unary_union with the LinearRings/LineString of the polygons (it cuts the lines at each intersection,Planar graph)
listpoly = [a.intersection(b) for a, b in combinations(shapely_arr_polygon, 2)]
for i in range(0,intersection_origem.length):
empty strings and None both evaluate to false. See here for more info about what is truthy and falsey in Python.
By the way, it is not recommended to iterate through lists the way you are doing in Python. A more "pythonic" way of ...
There are two problems with your approach. First problem is that you are checking line intersection with extent of the feature, which is smalest rectangle encompassing the whole feature. That's why you are getting roads also.
The second problem is that line crosses also neigboring features, that's why you are getting polygons 615 and 617. This would be ...
The intersects predicate is for GeoSeries and is elementwise thus with all the lines/polygons in eur
Int64Index([9, 28, 41, 79, 150], dtype='int64')
for i in eur.index:
9 --> 28 True
28 --> 28 True
41 --> 28 True
79 --> 28 True
150 --> 28 False