-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
CLN: revisit & simplify core data structures #6744
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
Labels
Internals
Related to non-user accessible pandas implementation
Comments
This was referenced Mar 30, 2014
interesting idea, seems like a nice and clean separation |
A point to consider which was brought up in patch discussion: don't forget to put unnecessary parts of API into separate functions to keep basic API to bare minimum. |
Closeable? It looks like this has gone as far as its gonna go |
Sure. We can revisit this if it becomes active again |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is an attempt to simplify/streamline internal API that has been brewing inside my head for quite a while. It does mean a significant overhaul and may take time, but it may prove worth the while. I'm putting it here for discussion ahead of time to make sure the effort isn't wasted for going in the wrong direction.
Idea
The idea is simple: "augmented take" operation — with -1 taking from nowhere and creating a new column — is enough to express any reindexing/merging/joining that may happen at Index level. So, lower levels of API that do the heavy lifting may be relieved from the burden of operating on labels and keeping them in sync. This will make them more self-contained with the following benefits:
There's a three-year-old ticket ticket that mentions a similar (if not the same) idea. As mentioned there, this may break pickles and other deserialization and thus it will require a separate legacy deserialization compatibility layer.
Another ticket mentions moving Block & BlockManager internals to cython level and dropping axes dependency will definitely facilitate that.
Goals
The end goal is to have internals layered as follows:
Deliverables
items
&ref_items
fields (ensure io backward compatibility!)The text was updated successfully, but these errors were encountered: