# pandas.DataFrame.to_pickle

DataFrame.to_pickle(path, compression='infer', protocol=5, storage_options=None)

  Pickle (serialize) object to file.

  Parameters
    path str

      File path where the pickled object will be stored.

    compression{‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’

      A string representing the compression to use in the output file. By default, infers from the file extension in specified path. Compression mode may be any of the following possible values: {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}. If compression mode is ‘infer’ and path_or_buf is path-like, then detect compression mode from the following extensions: ‘.gz’, ‘.bz2’, ‘.zip’ or ‘.xz’. (otherwise no compression). If dict given and mode is ‘zip’ or inferred as ‘zip’, other entries passed as additional compression options.

    protocol int

      Int which indicates which protocol should be used by the pickler, default HIGHEST_PROTOCOL (see [1] paragraph 12.1.2). The possible values are 0, 1, 2, 3, 4, 5. A negative value for the protocol parameter is equivalent to setting its value to HIGHEST_PROTOCOL.

      1

        https://docs.python.org/3/library/pickle.html.

    storage_options dict, optional

      Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs are forwarded to `urllib` as header options. For other URLs (e.g. starting with “s3://”, and “gcs://”) the key-value pairs are forwarded to `fsspec`. Please see `fsspec` and `urllib` for more details.

      New in version 1.2.0.

  See also

  `read_pickle`

    Load pickled pandas object (or any object) from file.

  `DataFrame.to_hdf`

    Write DataFrame to an HDF5 file.

  `DataFrame.to_sql`

    Write DataFrame to a SQL database.

  `DataFrame.to_parquet`

    Write a DataFrame to the binary parquet format.

  Examples

      >>> original_df = pd.DataFrame({"foo": range(5), "bar": range(5, 10)})
      >>> original_df
         foo  bar
      0    0    5
      1    1    6
      2    2    7
      3    3    8
      4    4    9
      >>> original_df.to_pickle("./dummy.pkl")

      >>> unpickled_df = pd.read_pickle("./dummy.pkl")
      >>> unpickled_df
         foo  bar
      0    0    5
      1    1    6
      2    2    7
      3    3    8
      4    4    9

      >>> import os
      >>> os.remove("./dummy.pkl")