-
Notifications
You must be signed in to change notification settings - Fork 311
Weights, ordering, and from_dataframe #922
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
Closed
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 similar comments
I definitely think I clobbered this accidentally. Something conflicted on my laptop, so I picked the recent changes in attempting to address #944 and this got overwritten. I'm not sure how to salvage, and at this point, I don't even recall what the changes were in this PR... shoot. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The geotable API for Contiguity weights was somewhat confusing to keep consistent with the preexisting file API. In doing so, I chose to use an indexing scheme matching the pre-existing
weights.util.queen_from_shapefile
, in that neitherids
noridVariable
caused the resultingW
to have any special ordering.Later, working with this stuff, I got surprised by some instability in the ordering of
W
when the indexing column is a string. Since we forceid_order
to be sorted, ifdf
is not sorted, thenfrom_dataframe(df, idVariable='my_string_index')
will not be aligned.So, this PR does a few things. First, it breaks out the functionality for classmethods in
Contiguity
to live in a mix-in class,_ContiguityMixin
. Then, thefrom_dataframe
method is changed to ensure that the alignment ofW
matchesdf
unless you explicitly ask for it not to be aligned withid_order = False
. Unittests cover:from_dataframe(df, idVariable='my_index')
is ordered bymy_index
whenmy_index
is astr
,int
, orfloat
from_dataframe(df, ids=df.my_index.tolist())
is also ordered overmy_index
whenmy_index
is astr
,int
, orfloat
id_order=False
flag must be passed to construct aW
that is out of alignment with the source data frame.df.sort_values('my_index')
forstr
,int
,float
.