dataiter
Datamancer
dataiter | Datamancer | |
---|---|---|
2 | 7 | |
23 | 124 | |
- | 2.4% | |
7.8 | 8.7 | |
24 days ago | 2 months ago | |
Python | Nim | |
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.
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
Datamancer
-
Anyone attempted to make Nim serve R's role? How is it currently?
I have been using Nim for all of my recent data munging and analysis. There's https://github.com/Vindaar/ggplotnim for plots (among others) and everything else has just been normal code. There's also https://github.com/SciNim/Datamancer if you need something more like tidyverse.
- Nim Version 1.6.6 Released
-
Is Nim right for me?
Check out Datamancer for your Pandas equivalent. If I recall correctly it does have the ability to read/write csv. If that doesn't suite you, there is a Python/Nim bridge called Nimpy. I do a lot of machine learning projects and have to use OpenCV and some other things from python because it doesn't exist yet. It's a pretty damn cool library.
-
daily report for Nim language
worked on the roadmap https://github.com/nim-lang/Nim/pull/19388 (enable -d:nimPreviewFloatRoundtrip and -d:nimPreviewDotLikeOps) and found that an important_packages (datamancer) failed. So I made a PR (https://github.com/SciNim/Datamancer/pull/23). It is not a bug of nimPreviewFloatRoundtrip(It seems like a precision problem to me) so alternatively datamancer can be disabled transiently.
-
Which dataframe library to use?
There seems to be two major ones for Nim, NimData and Datamancer. Which one is better?
- Polars: Lightning-fast DataFrame library for Rust and Python
What are some alternatives?
dtplyr - Data table backend for dplyr
nimpy - Nim - Python bridge
explorer - Series (one-dimensional) and dataframes (two-dimensional) for fast and elegant data exploration in Elixir
dataframe-api - RFC document, tooling and other content related to the dataframe API standard
nimskull - An in development statically typed systems programming language; with sustainability at its core. We, the community of users, maintain it.
chain-ops-python - Simple chaining of operations (a.k.a. pipe operator) in python
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
data_algebra - Codd method-chained SQL generator and Pandas data processing in Python.
ggplotnim - A port of ggplot2 for Nim
mito - The mitosheet package, trymito.io, and other public Mito code.
NimData - DataFrame API written in Nim, enabling fast out-of-core data processing