Parquet ToolsParquet Tools

Python • Pandas • Conversions

How to Convert Parquet Files in Python (CSV, JSON, Excel)

Keep all conversion snippets on one page so you can jump to the exact format you need. Use the anchor links or copy the ready-to-run code blocks below.

Parquet to CSV

The most searched conversion. Mind delimiter, encoding, and whether you want the index column.

import pandas as pd
df = pd.read_parquet("input.parquet")
# UTF-8 with comma delimiter (default)
df.to_csv("output.csv", index=False, encoding="utf-8")
# Custom delimiter & compression
df.to_csv(
"output.tsv.gz",
sep="\t",
index=False,
compression="gzip",
encoding="utf-8",
)

Tip: For large exports, write to gzip or bz2 to reduce file size; most tools can read compressed CSV directly.

Need a browser-based converter?Open Parquet → CSV

Parquet to JSON

Choose the orientation that matches your downstream consumer.records is usually best for APIs.

import pandas as pd
df = pd.read_parquet("input.parquet")
# Records (list of objects) for APIs
df.to_json("output.json", orient="records", lines=False)
# Line-delimited JSON for streaming/BigQuery
df.to_json("output.ndjson", orient="records", lines=True)

Tip: If you see bytes objects, set df.convert_dtypes() before export to normalize types.

Convert online without Python?Open Parquet → JSON

Parquet to Excel

Great for sharing smaller slices of data. Keep row counts modest—Excel struggles beyond ~1M rows.

import pandas as pd
df = pd.read_parquet("input.parquet")
with pd.ExcelWriter("output.xlsx", engine="xlsxwriter") as writer:
df.to_excel(writer, sheet_name="data", index=False)

Tip: For multiple sheets, call to_excel repeatedly with different sheet_name while reusing the same writer instance.

Prefer a quick browser export?Open Parquet → Excel

Tips & Pitfalls

  • Encoding errors: always set encoding="utf-8" when writing CSV with non-ASCII characters.
  • Memory pressure: select only needed columns in read_parquet and consider chunked writes for very large datasets.
  • Data types: call convert_dtypes() to normalize nullable types before export.
  • Column order: reorder with df[["colA", "colB"]] before writing to guarantee consistent schemas.