Skip to content

feat: back Row by a polars.DataFrame#214

Merged
lars-reimann merged 9 commits into
mainfrom
back_row_by_dataframe
Apr 19, 2023
Merged

feat: back Row by a polars.DataFrame#214
lars-reimann merged 9 commits into
mainfrom
back_row_by_dataframe

Conversation

@lars-reimann
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown

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
Copy Markdown
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