Skip to content

Commit 4c8d1ea

Browse files
found a first working solution
1 parent 9c06b30 commit 4c8d1ea

File tree

13 files changed

+44
-23
lines changed

13 files changed

+44
-23
lines changed

doc/source/whatsnew/v1.1.0.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ Other API changes
5656
- :meth:`Series.describe` will now show distribution percentiles for ``datetime`` dtypes, statistics ``first`` and ``last``
5757
will now be ``min`` and ``max`` to match with numeric dtypes in :meth:`DataFrame.describe` (:issue:`30164`)
5858
- :meth:`Groupby.groups` now returns an abbreviated representation when called on large dataframes (:issue:`1135`)
59+
- :class:`Series` constructor will default to construct an :class:`Index`, rather than an :class:`RangeIndex` when constructed with empty data, matching the behaviour of ``data=None``.
5960

6061
Backwards incompatible API changes
6162
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

pandas/core/series.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,12 @@ def __init__(
299299
if index is None:
300300
if not is_list_like(data):
301301
data = [data]
302-
index = ibase.default_index(len(data))
302+
303+
if is_empty_data(data):
304+
index = Index([])
305+
else:
306+
index = ibase.default_index(len(data))
307+
303308
elif is_list_like(data):
304309

305310
# a scalar numpy array is list-like but doesn't

pandas/tests/extension/base/missing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def test_isna(self, data_missing):
2020
# GH 21189
2121
result = pd.Series(data_missing).drop([0, 1]).isna()
2222
expected = pd.Series([], dtype=bool)
23-
self.assert_series_equal(result, expected)
23+
self.assert_series_equal(result, expected, check_index_type=False)
2424

2525
def test_dropna_array(self, data_missing):
2626
result = data_missing.dropna()

pandas/tests/extension/decimal/test_decimal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def convert(x):
8686
else:
8787
right_na = right.isna()
8888

89-
tm.assert_series_equal(left_na, right_na)
89+
tm.assert_series_equal(left_na, right_na, *args, **kwargs)
9090
return tm.assert_series_equal(left[~left_na], right[~right_na], *args, **kwargs)
9191

9292
@classmethod

pandas/tests/extension/test_sparse.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def test_isna(self, data_missing):
186186
# GH 21189
187187
result = pd.Series(data_missing).drop([0, 1]).isna()
188188
expected = pd.Series([], dtype=expected_dtype)
189-
self.assert_series_equal(result, expected)
189+
self.assert_series_equal(result, expected, check_index_type=False)
190190

191191
def test_fillna_limit_pad(self, data_missing):
192192
with tm.assert_produces_warning(PerformanceWarning):

pandas/tests/groupby/test_grouping.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ def test_groupby_empty(self):
641641
gr = s.groupby([])
642642

643643
result = gr.mean()
644-
tm.assert_series_equal(result, s)
644+
tm.assert_series_equal(result, s, check_index_type=False)
645645

646646
# check group properties
647647
assert len(gr.grouper.groupings) == 1

pandas/tests/io/json/test_pandas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ def test_series_roundtrip_empty(self, orient, numpy):
678678
else:
679679
expected.index = expected.index.astype(float)
680680

681-
tm.assert_series_equal(result, expected)
681+
tm.assert_series_equal(result, expected, check_index_type=False)
682682

683683
@pytest.mark.parametrize("numpy", [True, False])
684684
def test_series_roundtrip_timeseries(self, orient, numpy):

pandas/tests/reductions/test_reductions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ class TestSeriesMode:
10901090
def test_mode_empty(self, dropna, expected):
10911091
s = Series([], dtype=np.float64)
10921092
result = s.mode(dropna)
1093-
tm.assert_series_equal(result, expected)
1093+
tm.assert_series_equal(result, expected, check_index_type=False)
10941094

10951095
@pytest.mark.parametrize(
10961096
"dropna, data, expected",

pandas/tests/reshape/test_concat.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -736,17 +736,28 @@ def test_concat_categorical_empty(self):
736736
s1 = pd.Series([], dtype="category")
737737
s2 = pd.Series([], dtype="category")
738738

739-
tm.assert_series_equal(pd.concat([s1, s2], ignore_index=True), s2)
740-
tm.assert_series_equal(s1.append(s2, ignore_index=True), s2)
739+
tm.assert_series_equal(
740+
pd.concat([s1, s2], ignore_index=True), s2, check_index_type=False
741+
)
742+
tm.assert_series_equal(
743+
s1.append(s2, ignore_index=True), s2, check_index_type=False
744+
)
741745

742746
s1 = pd.Series([], dtype="category")
743747
s2 = pd.Series([], dtype="object")
744748

745749
# different dtype => not-category
746-
tm.assert_series_equal(pd.concat([s1, s2], ignore_index=True), s2)
747-
tm.assert_series_equal(s1.append(s2, ignore_index=True), s2)
748-
tm.assert_series_equal(pd.concat([s2, s1], ignore_index=True), s2)
749-
tm.assert_series_equal(s2.append(s1, ignore_index=True), s2)
750+
result = pd.concat([s1, s2], ignore_index=True)
751+
tm.assert_series_equal(result, s2, check_index_type=False)
752+
753+
result = s1.append(s2, ignore_index=True)
754+
tm.assert_series_equal(result, s2, check_index_type=False)
755+
756+
result = pd.concat([s1, s2], ignore_index=True)
757+
tm.assert_series_equal(result, s2, check_index_type=False)
758+
759+
result = s2.append(s1, ignore_index=True)
760+
tm.assert_series_equal(result, s2, check_index_type=False)
750761

751762
s1 = pd.Series([], dtype="category")
752763
s2 = pd.Series([np.nan, np.nan])
@@ -2202,7 +2213,7 @@ def test_concat_empty_series_timelike(self, tz, values):
22022213
}
22032214
)
22042215
result = concat([first, second], axis=1)
2205-
tm.assert_frame_equal(result, expected)
2216+
tm.assert_frame_equal(result, expected, check_index_type=False)
22062217

22072218
def test_default_index(self):
22082219
# is_series and ignore_index

pandas/tests/series/test_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ async def test_tab_complete_warning(self, ip):
497497
pytest.importorskip("IPython", minversion="6.0.0")
498498
from IPython.core.completer import provisionalcompleter
499499

500-
code = "import pandas as pd; s = pd.Series()"
500+
code = "import pandas as pd; s = pd.Series(dtype=object)"
501501
await ip.run_code(code)
502502
with tm.assert_produces_warning(None):
503503
with provisionalcompleter("ignore"):

0 commit comments

Comments
 (0)