Вы пытаетесь вращать shapely.Polygon
, а не GeoPandas.GeoSeries
, поэтому для этого вам нужно использовать фигурную форму.
import geopandas as gpd
import shapely
p1 = shapely.geometry.Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
p2 = shapely.geometry.Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
g = gpd.GeoSeries([p1, p2])
gdf = gpd.GeoDataFrame(geometry=g)
gdf['angle'] = [25, 45]
for index, row in gdf.iterrows():
rotated = shapely.affinity.rotate(row['geometry'], row['angle'])
gdf.loc[index, 'geometry'] = rotated