-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
BUG: Fix replacing in string
series with NA (pandas-dev#32621)
#32890
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
Changes from 19 commits
47f6676
2b53200
7678495
719369d
e98c7c9
fb8d143
0405f6a
23da71c
ca81cb0
8b6d224
c32a2cc
0a76844
b62ad89
f5b994a
a73e2eb
949accc
e7b37a0
37da655
df5bc39
606aeb8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -241,6 +241,13 @@ def test_replace2(self): | |
assert (ser[6:10] == -1).all() | ||
assert (ser[20:30] == -1).all() | ||
|
||
def test_replace_with_dictlike_and_string_dtype(self): | ||
# GH 32621 | ||
s = pd.Series(["one", "two", np.nan], dtype="string") | ||
expected = pd.Series(["1", "2", np.nan]) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The expected result here should also be There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Apparently that's not the case (even at the current stable version): >>> import pandas as pd
>>> pd.__version__
'1.0.3'
>>> s = pd.Series(["one", "two"], dtype="string")
>>> expected = pd.Series(["1", "2"], dtype="string")
>>> result = s.replace(to_replace={"one": "1", "two": "2"})
>>> expected
0 1
1 2
dtype: string
>>> result
0 1
1 2
dtype: object I'm not sure if that behaviour is to be expected or it should be tackled within a new issue. What do you think? This is not related to containing NA values. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would say that it is certainly expected for Although of course, there are not guarantees that your replacement value is a string ... For some cases of
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good observation. When not using the argument For more details check here: https://github.com/pandas-dev/pandas/blob/master/pandas/core/generic.py#L6462 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @chrispe92 can you open an issue for this |
||
result = s.replace({"one": "1", "two": "2"}) | ||
tm.assert_series_equal(expected, result) | ||
|
||
def test_replace_with_empty_dictlike(self): | ||
# GH 15289 | ||
s = pd.Series(list("abcd")) | ||
|
Uh oh!
There was an error while loading. Please reload this page.