Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: back Row by a polars.DataFrame #214

Merged
merged 9 commits into from
Apr 19, 2023
Merged

Conversation

lars-reimann
Copy link
Member

@lars-reimann lars-reimann commented Apr 19, 2023

Closes partially #196.
Closes #149.

Summary of Changes

  • Row now uses a polars.DataFrame instead of a pandas.Series to store its data. The DataFrame can directly store the column names.
  • Remove the __hash__ method. A Row can no longer be used in a set and as the key of a dict. If we find a use-case for this, we'll add it back.

@lars-reimann
Copy link
Member Author

lars-reimann commented Apr 19, 2023

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ PYTHON black 6 0 0 0.8s
✅ PYTHON mypy 6 0 1.64s
✅ PYTHON ruff 6 0 0 0.04s
✅ REPOSITORY git_diff yes no 0.02s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

@codecov
Copy link

codecov bot commented Apr 19, 2023

Codecov Report

Merging #214 (885677c) into main (655f07f) will increase coverage by 0.71%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #214      +/-   ##
==========================================
+ Coverage   95.66%   96.38%   +0.71%     
==========================================
  Files          42       42              
  Lines        1476     1465      -11     
==========================================
  Hits         1412     1412              
+ Misses         64       53      -11     
Impacted Files Coverage Δ
src/safeds/data/tabular/containers/_row.py 100.00% <100.00%> (+15.94%) ⬆️
src/safeds/data/tabular/containers/_table.py 93.85% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@lars-reimann lars-reimann force-pushed the back_row_by_dataframe branch 2 times, most recently from cfcb813 to 75c59e8 Compare April 19, 2023 19:58
@lars-reimann lars-reimann force-pushed the back_row_by_dataframe branch from 4daf48d to b5701a3 Compare April 19, 2023 20:06
@lars-reimann lars-reimann marked this pull request as ready for review April 19, 2023 20:14
@lars-reimann lars-reimann requested a review from a team as a code owner April 19, 2023 20:14
@lars-reimann lars-reimann merged commit 62ca34d into main Apr 19, 2023
@lars-reimann lars-reimann deleted the back_row_by_dataframe branch April 19, 2023 20:14
lars-reimann pushed a commit that referenced this pull request Apr 21, 2023
## [0.11.0](v0.10.0...v0.11.0) (2023-04-21)

### Features

* `OneHotEncoder.inverse_transform` now maintains the column order from the original table ([#195](#195)) ([3ec0041](3ec0041)), closes [#109](#109) [#109](#109)
* add `plot_` prefix back to plotting methods ([#212](#212)) ([e50c3b0](e50c3b0)), closes [#211](#211)
* adjust `Column`, `Schema` and `Table` to changes in `Row` ([#216](#216)) ([ca3eebb](ca3eebb))
* back `Row` by a `polars.DataFrame` ([#214](#214)) ([62ca34d](62ca34d)), closes [#196](#196) [#149](#149)
* clean up `Row` class ([#215](#215)) ([b12fc68](b12fc68))
* convert between `Row` and `dict` ([#206](#206)) ([e98b653](e98b653)), closes [#204](#204)
* convert between a `dict` and a `Table` ([#198](#198)) ([2a5089e](2a5089e)), closes [#197](#197)
* create column types for `polars` data types ([#208](#208)) ([e18b362](e18b362)), closes [#196](#196)
* dataframe interchange protocol ([#200](#200)) ([bea976a](bea976a)), closes [#199](#199)
* move existing ML solutions into `safeds.ml.classical` package ([#213](#213)) ([655f07f](655f07f)), closes [#210](#210)

### Bug Fixes

* `table.keep_only_columns` now maps column names to correct data ([#194](#194)) ([459ab75](459ab75)), closes [#115](#115)
* typo in type hint ([#184](#184)) ([e79727d](e79727d)), closes [#180](#180)
@lars-reimann
Copy link
Member Author

🎉 This PR is included in version 0.11.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label Apr 21, 2023
lars-reimann added a commit that referenced this pull request Apr 22, 2023
### Summary of Changes

In #214 we changes the implementation of `Row` so its data was stored in
a `polars.DataFrame`. As explained
[here](#196 (comment)),
`pandas` works better for us for now. We might undo this change in the
future if the type inference of `polars` gets improved (or we decide to
implement this ourselves).

---------

Co-authored-by: megalinter-bot <129584137+megalinter-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released Included in a release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve error handling of Row
2 participants