c3 = LineString(Point(1, 2).buffer(0.9).exterior)
contours = gpd.GeoDataFrame([100, 90, 80], geometry=[c1, c2, c3], columns=[
    'Elevation'])
columns_data = []
geoms = []
for _, n, r in roads.itertuples():
    for _, el, c in contours.itertuples():
        intersect = r.intersection(c)
columns_data.append((n, el))
geoms.append(intersect)
all_intersection = gpd.GeoDataFrame(columns_data, geometry=geoms, columns=[
    'Name', 'Elevation'])
print(all_intersection)
Intersection of Two LineStrings Geopandas