Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.__dataframe__

DataFrame.__dataframe__(nan_as_null=False, allow_copy=True)

  Return the dataframe interchange object implementing the interchange protocol.

  Deprecated since version 3.0.0: The Dataframe Interchange Protocol is deprecated. For dataframe-agnostic code, you may want to look into:

  - Arrow PyCapsule Interface

  - Narwhals

  Note

  For new development, we highly recommend using the Arrow C Data Interface alongside the Arrow PyCapsule Interface instead of the interchange protocol

  Warning

  Due to severe implementation issues, we recommend only considering using the interchange protocol in the following cases:

  - converting to pandas: for pandas >= 2.0.3

  - converting from pandas: for pandas >= 3.0.0

  Parameters:
    nan_as_null bool, default False

      nan_as_null is DEPRECATED and has no effect. Please avoid using it; it will be removed in a future release.

    allow_copy bool, default True

      Whether to allow memory copying when exporting. If set to False it would cause non-zero-copy exports to fail.

  Returns:
    DataFrame interchange object

      The object which consuming library can use to ingress the dataframe.

  See also

  `DataFrame.from_records`

    Constructor from tuples, also record arrays.

  `DataFrame.from_dict`

    From dicts of Series, arrays, or dicts.

  Notes

  Details on the interchange protocol: https://data-apis.org/dataframe-protocol/latest/index.html

  Examples

      >>> df_not_necessarily_pandas = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
      >>> interchange_object = df_not_necessarily_pandas.__dataframe__()
      >>> interchange_object.column_names()
      Index(['A', 'B'], dtype='str')
      >>> df_pandas = pd.api.interchange.from_dataframe(
      ...     interchange_object.select_columns_by_name(["A"])
      ... )
      >>> df_pandas
           A
      0    1
      1    2

  These methods (`column_names`, `select_columns_by_name`) should work for any dataframe library which implements the interchange protocol.