vaex
polars
Our great sponsors
vaex | polars | |
---|---|---|
7 | 144 | |
8,171 | 25,837 | |
0.4% | 5.3% | |
6.0 | 10.0 | |
14 days ago | 6 days ago | |
Python | Rust | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vaex
-
preprocessing millions of records - how to speed up the processing
Try vaex, vaex, using lazy evaluation and parallel calculations, you should be fine.
-
High performance (for the consumer) time series storage?
I'd recommend QuestDB. Worked with it multiple times for different algorithmic trading needs and it didn't disappoint. If you want to load data fast, I'd recommend this Python library.
-
Python Pandas vs Dask for csv file reading
How about vaex?
- Polars: Lightning-fast DataFrame library for Rust and Python
-
For stocks, what historical data do you store and how do you store it?
You might find vaex (https://github.com/vaexio/vaex) interesting if you work with HDF5.
- I wrote one of the fastest DataFrame libraries
-
A Hybrid Apache Arrow/Numpy DataFrame with Vaex Version 4.0
My guess is that should be possible, feel free to hop onto https://github.com/vaexio/vaex/discussions !
polars
-
Why Python's Integer Division Floors (2010)
This is because 0.1 is in actuality the floating point value value 0.1000000000000000055511151231257827021181583404541015625, and thus 1 divided by it is ever so slightly smaller than 10. Nevertheless, fpround(1 / fpround(1 / 10)) = 10 exactly.
I found out about this recently because in Polars I defined a // b for floats to be (a / b).floor(), which does return 10 for this computation. Since Python's correctly-rounded division is rather expensive, I chose to stick to this (more context: https://github.com/pola-rs/polars/issues/14596#issuecomment-...).
- Polars
-
Stuff I Learned during Hanukkah of Data 2023
That turned out to be related to pola-rs/polars#11912, and this linked comment provided a deceptively simple solution - use PARSE_DECLTYPES when creating the connection:
- Polars 0.20 Released
- Segunda linguagem
- Polars: Dataframes powered by a multithreaded query engine, written in Rust
- Summing columns in remote Parquet files using DuckDB
- Polars 0.34 is released. (A query engine focussing on DataFrame front ends)
What are some alternatives?
data.table - R's data.table package extends data.frame:
modin - Modin: Scale your Pandas workflows by changing a single line of code
minimal-pandas-api-for-polars - pip install minimal-pandas-api-for-polars
arrow-datafusion - Apache DataFusion SQL Query Engine
rust-dataframe - A Rust DataFrame implementation, built on Apache Arrow
DataFrames.jl - In-memory tabular data in Julia
visidata - A terminal spreadsheet multitool for discovering and arranging data
datatable - A Python package for manipulating 2-dimensional tabular data structures
umap - Uniform Manifold Approximation and Projection
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
db-benchmark - reproducible benchmark of database-like ops