1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import numpy as np
- from pandas import (
- Series,
- interval_range,
- )
- import pandas._testing as tm
- class TestInferObjects:
- def test_copy(self, index_or_series):
- # GH#50096
- # case where we don't need to do inference because it is already non-object
- obj = index_or_series(np.array([1, 2, 3], dtype="int64"))
- result = obj.infer_objects(copy=False)
- assert tm.shares_memory(result, obj)
- # case where we try to do inference but can't do better than object
- obj2 = index_or_series(np.array(["foo", 2], dtype=object))
- result2 = obj2.infer_objects(copy=False)
- assert tm.shares_memory(result2, obj2)
- def test_infer_objects_series(self, index_or_series):
- # GH#11221
- actual = index_or_series(np.array([1, 2, 3], dtype="O")).infer_objects()
- expected = index_or_series([1, 2, 3])
- tm.assert_equal(actual, expected)
- actual = index_or_series(np.array([1, 2, 3, None], dtype="O")).infer_objects()
- expected = index_or_series([1.0, 2.0, 3.0, np.nan])
- tm.assert_equal(actual, expected)
- # only soft conversions, unconvertable pass thru unchanged
- obj = index_or_series(np.array([1, 2, 3, None, "a"], dtype="O"))
- actual = obj.infer_objects()
- expected = index_or_series([1, 2, 3, None, "a"], dtype=object)
- assert actual.dtype == "object"
- tm.assert_equal(actual, expected)
- def test_infer_objects_interval(self, index_or_series):
- # GH#50090
- ii = interval_range(1, 10)
- obj = index_or_series(ii)
- result = obj.astype(object).infer_objects()
- tm.assert_equal(result, obj)
- def test_infer_objects_bytes(self):
- # GH#49650
- ser = Series([b"a"], dtype="bytes")
- expected = ser.copy()
- result = ser.infer_objects()
- tm.assert_series_equal(result, expected)
|