Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk5 min

CSV Benchmarking: pandas vs. Polars vs. DuckDB

A May 2025 PDS-H run favored Polars streaming at scale factor 10, but the result is workload-specific. Learn what the benchmarks measure and how to compare the tools on your own CSV files.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which is faster for CSV benchmarking: pandas, Polars, or DuckDB? In Polars’ May 2025 PDS-H benchmark at scale factor 10, Polars’ streaming engine was fastest among the tested versions, followed by DuckDB, Polars in-memory, and then pandas. That is a result for one analytical query suite—not a universal ranking of CSV readers. The right choice depends on your files, transformations, memory limits, and preferred API.

What the published speed comparison shows

Polars’ May 2025 PDS-H publication reports total times for its scale-factor-10 suite, where one scale-factor unit is roughly equivalent to 1 GB of CSV data. The figures below are project-published benchmark results for the named versions; they are suite totals, not the time required simply to open an arbitrary CSV.

As an Amazon Associate I earn from qualifying purchases.

Tool and mode Version in the May 2025 PDS-H run Scale-factor-10 total
Polars streaming engine 1.30.0 3.89 seconds
DuckDB 1.3.0 5.87 seconds
Polars in-memory engine 1.30.0 9.68 seconds
pandas 2.2.3 365.71 seconds

Polars reports that its streaming and DuckDB had similar results at scale factor 100, and that Polars streaming fell behind on query 21. pandas was included only at scale factor 10: Polars says its performance there was poor and it encountered out-of-memory failures at higher scale. These results favor streaming Polars for this suite and make clear that Polars’ execution mode matters; they do not predict every application’s outcome. Polars’ PDS-H benchmark publication provides the project’s methodology and results.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Speed, parsing accuracy, and reader throughput are different questions

A benchmark that measures analytical query execution does not tell you whether a tool will correctly interpret every CSV dialect, and a parsing-robustness score does not measure throughput. Keep those questions separate when comparing tools.

Parsing robustness: DuckDB’s Pollock results

DuckDB’s April 2025 Pollock article reports DuckDB 1.2 at 9.961/10 simple and 9.599/10 weighted score in the configured benchmark mode. The same table lists pandas 1.4.3 at 9.895/10 simple and 9.431/10 weighted. DuckDB’s auto-detect-only mode scored 9.075/10 simple and 8.439/10 weighted. The configured DuckDB run was given known dialect and schema options, while auto-detect-only was not given the custom configuration file; those scores therefore do not represent identical prior information. The article does not list Polars in its score table. These are robustness scores, not speed measurements. DuckDB’s Pollock write-up describes the benchmark.

DuckDB’s reader history is not a head-to-head ranking

In a June 26, 2024 post about its own reader, the DuckDB project said: “DuckDB has improved CSV reader performance by nearly 3×, while adding the ability to handle many more CSV dialects automatically.” This is the project’s account of DuckDB’s progress over time, not a controlled comparison among DuckDB, pandas, and Polars. Read the DuckDB benchmark-history post.

How the tools differ in a CSV workflow

Tool When it fits What to control in a comparison
pandas A familiar Python DataFrame workflow with extensive CSV options. Name the parser engine and relevant options. pandas’ stable 3.0.5 documentation describes the C and PyArrow engines as faster and the Python engine as more feature-complete; only PyArrow supports multithreading on that documentation page. pandas CSV and text-file documentation.
Polars A multithreaded, single-machine DataFrame library with in-memory and streaming execution modes. Report the mode and version rather than giving a single undifferentiated “Polars” number. Polars’ comparison guide is project guidance. Polars’ benchmark guide.
DuckDB SQL-shaped filtering and aggregation, including queries directly over CSV files; its Python interface can also query Pandas and Polars DataFrames. Record thread count, sniffing and schema options, and whether your workflow materializes a table. DuckDB CSV documentation and DuckDB Python API documentation.

Chunking can let pandas process a read in pieces, but operations such as groupby are harder to implement chunkwise. For DuckDB, repeated CSV sniffing can add overhead when reading many small files with a shared dialect and schema; turning it off is appropriate only when you can reliably supply those common settings. DuckDB’s documentation gives one compressed-file example: loading a GZIP CSV took 107.1 seconds, compared with 121.3 seconds to decompress it separately in parallel and load the uncompressed CSV. Those timings describe DuckDB’s documented setup, not a general performance ratio. pandas chunk-reading guidance and DuckDB’s CSV guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Benchmark the job you actually need to do

A useful result answers this question: how long and how much memory does each tool need to read the same data, perform the same work, and produce an equivalent result on the same machine? Record the configuration alongside every measurement.

  1. Choose representative files. Preserve the real delimiter, quoting, missing-value conventions, compression, column types, and number of files. Record input size and row count.
  2. Define the same output. Specify the columns, types, rows, and final result to produce. Check that results agree across tools. If measuring ingestion, include parsing and type inference; if measuring analysis, apply the same filter, aggregation, join, or sort.
  3. Make configuration visible. Record software versions; pandas parser engine; Polars in-memory or streaming mode; DuckDB thread count and CSV auto-detection or schema options; and whether data is materialized. Do not give one tool helpful schema information while leaving another to infer it unless that difference reflects your real use case.
  4. Separate first reads from repeats. Measure cold and repeated reads if both occur in production. For many small files, measure CSV-sniffer overhead separately; test an explicit shared schema or dialect only if the application can provide it.
  5. Measure more than elapsed time. Report wall-clock time, peak memory, and result correctness. Run more than once under recorded hardware and software conditions, and avoid unrelated machine load during the comparison. pandas cautions that benchmark results can change with hardware and system stress. pandas benchmark guidance.
  6. Choose on workflow fit as well as speed. Consider existing pandas dependencies and syntax, Polars’ expression and streaming model, or DuckDB’s SQL and direct file querying. A hybrid workflow is also possible: DuckDB documents querying Pandas and Polars DataFrames through its Python interface.

Which one should you use?

  • Choose pandas when your application already relies on pandas and its CSV controls, or when the familiar DataFrame workflow is more important than a benchmark advantage on a different workload.
  • Choose Polars when its DataFrame and execution model suits the job; test streaming and in-memory modes separately because their performance can differ substantially.
  • Choose DuckDB when the work is naturally expressed in SQL or you want to query CSV files directly. Include sniffing, schema choices, and any materialization in the end-to-end test.
  • Do not pick solely from a ranking unless your workload, configuration, hardware, and correctness requirements match the published benchmark closely.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.