> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GeoDataFrame.from_arrow

> Construct a GeoDataFrame from a Arrow table object based on GeoArrow extension types.

Construct a GeoDataFrame from a Arrow table object based on GeoArrow
extension types.

See [https://geoarrow.org/](https://geoarrow.org/) for details on the GeoArrow specification.

This functions accepts any tabular Arrow object implementing
the `Arrow PyCapsule Protocol`\_ (i.e. having an `__arrow_c_array__`
or `__arrow_c_stream__` method).

.. \_Arrow PyCapsule Protocol: [https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html)

*Added in version 1.0.*

## Signature

```python theme={"system"}
GeoDataFrame.from_arrow(
    table,
    geometry: str | None = None,
    to_pandas_kwargs: dict | None = None,
)
```

## Parameters

<ParamField path="table" type="pyarrow.Table or Arrow-compatible table" required>
  Any tabular object implementing the Arrow PyCapsule Protocol
  (i.e. has an `__arrow_c_array__` or `__arrow_c_stream__`
  method). This table should have at least one column with a
  geoarrow geometry type.
</ParamField>

<ParamField path="geometry" type="str | None" default="None">
  The name of the geometry column to set as the active geometry
  column. If None, the first geometry column found will be used.
</ParamField>

<ParamField path="to_pandas_kwargs" type="dict | None" default="None">
  Arguments passed to the `pa.Table.to_pandas` method for non-geometry
  columns. This can be used to control the behavior of the conversion of the
  non-geometry columns to a pandas DataFrame. For example, you can use this
  to control the dtype conversion of the columns. By default, the `to_pandas`
  method is called with no additional arguments. Requires GeoPandas 1.1 or
  newer when provided.
</ParamField>

## Returns

<ResponseField name="return" type="GeoDataFrame" />

**See also**

* `GeoDataFrame.to_arrow`
* `GeoSeries.from_arrow`

## Examples

```python theme={"system"}
>>> from sedona.spark.geopandas import GeoDataFrame
>>> import geoarrow.pyarrow as ga  # requires: pip install geoarrow-pyarrow
>>> import pyarrow as pa  # requires: pip install pyarrow
>>> table = pa.Table.from_arrays([
...     ga.as_geoarrow([None, "POLYGON ((0 0, 1 1, 0 1, 0 0))", "LINESTRING (0 0, -1 1, 0 -1)"]),
...     pa.array([1, 2, 3]),
...     pa.array(["a", "b", "c"]),
... ], names=["geometry", "id", "value"])
>>> gdf = GeoDataFrame.from_arrow(table)
>>> gdf
                           geometry   id  value
0                              None    1      a
1    POLYGON ((0 0, 1 1, 0 1, 0 0))    2      b
2      LINESTRING (0 0, -1 1, 0 -1)    3      c
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.