-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
TST: add tests for keeping dtype in Series.update #23604
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 all commits
925237a
9a74273
8a0a7ed
3718979
31317ea
e448675
241de90
528f36f
66b535f
c180b48
437a025
be15e28
71655ec
b736c4b
8f78023
a5610a2
9168f4e
57466dd
0f50a25
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 |
---|---|---|
|
@@ -10,10 +10,10 @@ | |
import pandas as pd | ||
from pandas import DataFrame, DatetimeIndex, Series, compat, date_range | ||
import pandas.util.testing as tm | ||
from pandas.util.testing import assert_series_equal | ||
from pandas.util.testing import assert_frame_equal, assert_series_equal | ||
|
||
|
||
class TestSeriesCombine(): | ||
class TestSeriesCombine(object): | ||
|
||
def test_append(self, datetime_series, string_series, object_series): | ||
appendedSeries = string_series.append(object_series) | ||
|
@@ -116,8 +116,40 @@ def test_update(self): | |
df = DataFrame([{"a": 1}, {"a": 3, "b": 2}]) | ||
df['c'] = np.nan | ||
|
||
# this will fail as long as series is a sub-class of ndarray | ||
# df['c'].update(Series(['foo'],index=[0])) ##### | ||
df['c'].update(Series(['foo'], index=[0])) | ||
expected = DataFrame([[1, np.nan, 'foo'], [3, 2., np.nan]], | ||
columns=['a', 'b', 'c']) | ||
assert_frame_equal(df, expected) | ||
|
||
@pytest.mark.parametrize('other, dtype, expected', [ | ||
# other is int | ||
([61, 63], 'int32', pd.Series([10, 61, 12], dtype='int32')), | ||
([61, 63], 'int64', pd.Series([10, 61, 12])), | ||
([61, 63], float, pd.Series([10., 61., 12.])), | ||
([61, 63], object, pd.Series([10, 61, 12], dtype=object)), | ||
# other is float, but can be cast to int | ||
([61., 63.], 'int32', pd.Series([10, 61, 12], dtype='int32')), | ||
([61., 63.], 'int64', pd.Series([10, 61, 12])), | ||
([61., 63.], float, pd.Series([10., 61., 12.])), | ||
([61., 63.], object, pd.Series([10, 61., 12], dtype=object)), | ||
# others is float, cannot be cast to int | ||
([61.1, 63.1], 'int32', pd.Series([10., 61.1, 12.])), | ||
([61.1, 63.1], 'int64', pd.Series([10., 61.1, 12.])), | ||
([61.1, 63.1], float, pd.Series([10., 61.1, 12.])), | ||
([61.1, 63.1], object, pd.Series([10, 61.1, 12], dtype=object)), | ||
# other is object, cannot be cast | ||
([(61,), (63,)], 'int32', pd.Series([10, (61,), 12])), | ||
([(61,), (63,)], 'int64', pd.Series([10, (61,), 12])), | ||
([(61,), (63,)], float, pd.Series([10., (61,), 12.])), | ||
([(61,), (63,)], object, pd.Series([10, (61,), 12])) | ||
]) | ||
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. @jreback, this PR is not meant to add the same test twice in different ways, I'm just showing what your review requirement (to avoid try-except) would mean. 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. this is a MUCH better test. It is very explicit. remove the other, rename and ping. |
||
def test_update_dtypes(self, other, dtype, expected): | ||
|
||
s = Series([10, 11, 12], dtype=dtype) | ||
other = Series(other, index=[1, 3]) | ||
s.update(other) | ||
|
||
assert_series_equal(s, expected) | ||
|
||
def test_concat_empty_series_dtypes_roundtrips(self): | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.