I would like to perform the following operation using `geopandas`. [![enter image description here][1]][1] The segments are delimited by red points and the blue items are attribute information. My inputs are the first and second line segments and my output is the third line segment. Initially I thought this would be an intersection operation, but I soon learned that `geopandas` can only intersect polygons, therefore something like: `intersection = geopandas.overlay(split_lines, original_lines, how='intersection')` returns the following error: raise TypeError("overlay only takes GeoDataFrames with (multi)polygon " TypeError: overlay only takes GeoDataFrames with (multi)polygon This to me looks like a standard geoprocessing operation and I really hope I won't have to code this up from scratch. Are there any simplified ways to come up with the following result without having to code a custom function? Thanks **EDIT** Using @Jon's script I get the following result geometry property 0 (LINESTRING (0 0, 7 0)) a 1 (LINESTRING (7 0, 13 0)) b 2 (LINESTRING (13 0, 15 0)) c 3 (LINESTRING (15 0, 19 0)) d geometry susc 0 LINESTRING (0 0, 5 0) 1 1 LINESTRING (5 0, 7 0, 10 0) 2 2 LINESTRING (10 0, 13 0, 15 0) 3 3 LINESTRING (15 0, 19 0) 4 geometry attrib_1 attrib_2 0 LINESTRING (0 0, 5 0) 1 a 1 LINESTRING (5 0, 7 0) 1 a 2 LINESTRING (7 0, 10 0) 2 a 3 LINESTRING (10 0, 13 0) 2 a 4 LINESTRING (13 0, 15 0) 3 b 5 LINESTRING (15 0, 19 0) 3 c The attribute `a` seems to be carried over until x=13, which does not fit with the illustration above [1]: https://i.sstatic.net/rtcuE.png