On Friday, 22 November 2024 at 09:53:04 UTC, tastyminerals wrote:
On Tuesday, 29 October 2024 at 16:11:08 UTC, Aravinda VK wrote:
Hello everyone,

I am happy to share my DataFrame library for D. My primary focus was to make it simple to use and I haven't spent a lot of time optimizing the code for memory and performance.

[...]

Cool, something that is definitely missing in D is a native data frame library.

I have a question that can be also a suggestion. Why don't you use **mir-algorithm** library instead?

Thanks for the feedback. Nothing against mir-algorithm but I haven't used it.

For one of my use case, I started storing each fields as different array. This really enhanced the experience of columnar operations. Later, I searched for a DataFrame library but I couldn't find any.

I found the idea of storing each fields of a struct as independent array instead of storing array of struct very interesting. I started the DataFrame project. The API is very simple to use, given a struct, a new DataFrame class will be created with each field of input Struct as array of same type. For example, `double amount` of input struct will be `double[] amount` in the DataFrame class.

All Column based operations are equivalent to doing array operations using D standard library. For example, `df.amount.maxElement` or `df.amount.sum`.

Please check the project README (https://github.com/aravindavk/dataframes-d) for usage details.

Made the new release with couple of enhancements:

- Column!T.data is changed to Column!T.values (`1.0.1`)
- Added support to create a new DataFrame from the list of the rows or from a DataFrame. (`1.0.1`) - Make Column and Row type available after import dataframes (`1.0.2`) - Add support to add/subtract/multiply/divide numeric to Column (`1.0.3`)
- Add head and tail methods and update the documentation (`1.0.3`)
- Add support to access column by label and index (`1.0.3`)


Reply via email to