ENH: Use left._constructor on pd.merge by jwass · Pull Request #7737 · pandas-dev/pandas (original) (raw)

Use the _constructor property when creating the merge result to
preserve the output type.

If a GeoPandas GeoDataFrame is merged with a DataFrame, the result is hard-coded to always be DataFrame GeoPandas Issue #118. We'd like it to return GeoDataFrame in these cases

>>> import geopandas as gpd
>>> import pandas as pd

>>> gdf = gpd.GeoDataFrame(...)
>>> df = pd.DataFrame(...)

>>> merged = pd.merge(gdf, df, on='column')
>>> type(merged)
GeoDataFrame

This PR uses left._constructor to generate the result type for merge operations.