dataiter
dtplyr
dataiter | dtplyr | |
---|---|---|
2 | 24 | |
25 | 654 | |
- | -0.3% | |
7.8 | 7.5 | |
24 days ago | 2 months ago | |
Python | R | |
MIT License | GNU General Public License v3.0 or later |
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.
dataiter
-
Modern Pandas (Part 2): Method Chaining
Here's another alternative. I wrote Dataiter specifically as I too was frustrated with Pandas. In my experience if you design a new API from scratch (and don't try to reimplement the Pandas API as many projects have done!) and have some vision and consistent principles, it's well possible to get a good intuitive API as a result. Two relevant issues remain: You're limited by NumPy's datatypes and their problems, such as memory-hogging strings and a lack of a proper missing value (NA), and secondly, limited by the Python language, so compared to e.g. dplyr's non-standard evaluation, you'll need to use lambda functions, which are unfortunately clumsy and verbose.
https://github.com/otsaloma/dataiter
Here's a comparison of dplyr vs. Dataiter vs. Pandas, which should give quick overview of the similarieties and differences.
https://dataiter.readthedocs.io/en/latest/_static/comparison...
-
Polars: Lightning-fast DataFrame library for Rust and Python
Agreed, dplyr is great.
I built my own data frame implementation on top of NumPy specifically trying to accomplish a better API, similar to dplyr. It's not exactly the same naming or operations, but should feel familiar and much simpler and consistent than Pandas. And no indexes or axes.
Having done this, a couple notes on what will unavoidably differ in Python
* It probably makes more sense in Python to use classes, so method chaining instead of function piping. I wish one could syntactically skip enclosing parantheses in Python though, method chains look a bit verbose.
* Python doesn't have R's "non-standard evaluation", so you end up needing lambda functions for arguments in method chains and group-wise aggregation etc. I'd be interested if someone has a better solution.
* NumPy (and Pandas) is still missing a proper missing value (NA). It's a big pain to try to work around that.
https://github.com/otsaloma/dataiter
dtplyr
-
Tidyverse 2.0.0
Can’t say I’ve used it, but isn’t that what dtplyr is supposed to provide?
https://dtplyr.tidyverse.org/
-
Error when trying to use dtplyr::lazy_dt, "invalid argument to unary operator"
# I am trying to follow the example at https://dtplyr.tidyverse.org/
-
Millions of rows
FYI the developer of tidytable has been developing dtplyr for the Tidyverse. You might like that too!
-
fuzzyjoin - "Error in which(m) : argument to 'which' is not logical"
If you need speed, you should consider using dtplyr (or tidytable), or even dbplyr with duckdb.
-
Best alternative to Pandas 2023?
https://dtplyr.tidyverse.org/ ?
-
R Dialects Broke Me
If you want data.table speed, but using dplyr/tidy then dtplyr is a good package to have handy. Personally I love R, and choose R + NodeJS as my gotos for everything I do, and use Python only when I have to.
-
Merging csv from environment.
Also, that dataset is quite big, and the "base" Tidyverse will be excessively slow. You should supplement the "base" Tidyverse packages (i.e. dplyr and tidyr) with either dtplyr or dbplyr (+ duckDB). I'd suggest starting with dtplyr, which should handle 10M+ rows fine.
-
mutate ( ) function is only working in code chunk I run it in. It does not change the column in my data frame other than in that one code chunk.
If you want, there's a "substitute" for dplyr called dtplyr (also part of the Tidyverse), which "translates" your dplyr/tidyr code into data.table behind the scenes, and allows you to make your modifications apply directly to the original dataset by default:
-
R process taking over 2 hours to run suddenly
Install the dtplyr package and change your code to:
-
DS student here: why use R over Python?
Get the best of both worlds (tidyverse + data.tables) with dtplyr, a data.table backend for dplyr.
What are some alternatives?
explorer - Series (one-dimensional) and dataframes (two-dimensional) for fast and elegant data exploration in Elixir
tidytable - Tidy interface to 'data.table'
dataframe-api - RFC document, tooling and other content related to the dataframe API standard
polars - Dataframes powered by a multithreaded, vectorized query engine, written in Rust
chain-ops-python - Simple chaining of operations (a.k.a. pipe operator) in python
tidypolars - Tidy interface to polars
data_algebra - Codd method-chained SQL generator and Pandas data processing in Python.
vaex - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀
mito - The mitosheet package, trymito.io, and other public Mito code.
Datamancer - A dataframe library with a dplyr like API
minimal-pandas-api-for-pola