-
-
Notifications
You must be signed in to change notification settings - Fork 18.2k
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
Add inplace support for rename_axis #16505
Add inplace support for rename_axis #16505
Conversation
Codecov Report
@@ Coverage Diff @@
## master #16505 +/- ##
==========================================
+ Coverage 90.43% 90.43% +<.01%
==========================================
Files 161 161
Lines 51045 51047 +2
==========================================
+ Hits 46161 46163 +2
Misses 4884 4884
Continue to review full report at Codecov.
|
Codecov Report
@@ Coverage Diff @@
## master #16505 +/- ##
==========================================
- Coverage 90.95% 90.92% -0.03%
==========================================
Files 161 161
Lines 49276 49278 +2
==========================================
- Hits 44817 44807 -10
- Misses 4459 4471 +12
Continue to review full report at Codecov.
|
|
||
Parameters | ||
---------- | ||
name : str or list of str | ||
Name for the Index, or list of names for the MultiIndex | ||
axis : int or str | ||
0 or 'index' for the index; 1 or 'columns' for the columns | ||
inplace : bool | ||
whether to modify `self` directly or return a copy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
versionadded tag
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which version should I specify?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specified 0.20.2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move to 0.21.0
pandas/core/generic.py
Outdated
@@ -831,9 +833,11 @@ def _set_axis_name(self, name, axis=0): | |||
axis = self._get_axis_number(axis) | |||
idx = self._get_axis(axis).set_names(name) | |||
|
|||
renamed = self.copy(deep=True) | |||
inplace = validate_bool_kwarg(inplace, 'inplace') | |||
renamed = self if inplace else self.copy(deep=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deep=True is the default so can remove that
df3520d
to
dc8e38c
Compare
|
||
Parameters | ||
---------- | ||
name : str or list of str | ||
Name for the Index, or list of names for the MultiIndex | ||
axis : int or str | ||
0 or 'index' for the index; 1 or 'columns' for the columns | ||
inplace : bool | ||
whether to modify `self` directly or return a copy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move to 0.21.0
@@ -418,6 +418,13 @@ def test_rename(self): | |||
pd.Index(['bar', 'foo'], name='name')) | |||
assert renamed.index.name == renamer.index.name | |||
|
|||
def test_rename_axis(self): | |||
renamed = self.frame.rename_axis('foo') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add the issue number as a comment
@@ -418,6 +418,13 @@ def test_rename(self): | |||
pd.Index(['bar', 'foo'], name='name')) | |||
assert renamed.index.name == renamer.index.name | |||
|
|||
def test_rename_axis(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test_rename_axis_inplace
no_return = self.frame.rename_axis('foo', inplace=True) | ||
assert no_return is None | ||
renamed2 = self.frame | ||
assert_frame_equal(renamed, renamed2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make this read
assert_frame_equal(result, expected)
(rename things)
dc8e38c
to
2c51767
Compare
@@ -831,9 +835,11 @@ def _set_axis_name(self, name, axis=0): | |||
axis = self._get_axis_number(axis) | |||
idx = self._get_axis(axis).set_names(name) | |||
|
|||
renamed = self.copy(deep=True) | |||
inplace = validate_bool_kwarg(inplace, 'inplace') | |||
renamed = self if inplace else self.copy() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason you removed the deep=True
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's the default and can thus be removed (as of @jreback's request that disappeared after my rebase).
https://github.com/pandas-dev/pandas/blob/master/pandas/core/generic.py#L3523
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, perfect! (I looked for a comment about it, but didn't find one :-))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pls add a whatnews note in other enhancements for 0.21.0. ping on green.
@@ -418,6 +418,14 @@ def test_rename(self): | |||
pd.Index(['bar', 'foo'], name='name')) | |||
assert renamed.index.name == renamer.index.name | |||
|
|||
def test_rename_axis_inplace(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you also add a similar test in series/test_alter_axes.py
and tests this with axis=1 as well.
@@ -33,6 +33,7 @@ Other Enhancements | |||
- The ``validate`` argument for :func:`merge` function now checks whether a merge is one-to-one, one-to-many, many-to-one, or many-to-many. If a merge is found to not be an example of specified merge type, an exception of type ``MergeError`` will be raised. For more, see :ref:`here <merging.validation>` (:issue:`16270`) | |||
- ``Series.to_dict()`` and ``DataFrame.to_dict()`` now support an ``into`` keyword which allows you to specify the ``collections.Mapping`` subclass that you would like returned. The default is ``dict``, which is backwards compatible. (:issue:`16122`) | |||
- ``RangeIndex.append`` now returns a ``RangeIndex`` object when possible (:issue:`16212`) | |||
- ``Series.rename_axis()`` and ``DataFrame.rename_axis()`` with ``inplace=True`` now return None while renaming the axis inplace. (:issue:`15704`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jreback - added
6ce4726
to
6da584b
Compare
6da584b
to
01eaba1
Compare
thanks @hndrkmkt |
git diff upstream/master --name-only -- '*.py' | flake8 --diff