Skip to content

Commit 6bd6ddd

Browse files
committed
BUG: don't assume series is length > 0
1 parent 8cbee35 commit 6bd6ddd

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

doc/source/whatsnew/v0.23.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -557,3 +557,4 @@ Other
557557
^^^^^
558558

559559
- Improved error message when attempting to use a Python keyword as an identifier in a ``numexpr`` backed query (:issue:`18221`)
560+
- Bug in `Series.memory_usage` which assumes series will always have more than one element (:issue:`19368`)

pandas/_libs/lib.pyx

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ def memory_usage_of_objects(ndarray[object, ndim=1] arr):
6767
cdef int64_t s = 0
6868

6969
n = len(arr)
70-
for i from 0 <= i < n:
70+
# Hrm why was this 0 <= i < n
71+
for i from 0 < i < n:
7172
s += arr[i].__sizeof__()
7273
return s
7374

pandas/tests/sparse/series/test_series.py

+11
Original file line numberDiff line numberDiff line change
@@ -971,6 +971,17 @@ def test_combine_first(self):
971971
tm.assert_sp_series_equal(result, result2)
972972
tm.assert_sp_series_equal(result, expected)
973973

974+
@pytest.mark.parametrize('deep,fill_values', [([True, False],
975+
[0, 1, np.nan, None])])
976+
def test_memory_usage_deep(self, deep, fill_values):
977+
for fv in fill_values:
978+
sparse_series = SparseSeries(fill_values, fill_value=fv)
979+
dense_series = Series(fill_values)
980+
sparse_usage = sparse_series.memory_usage(deep=deep)
981+
dense_usage = dense_series.memory_usage(deep=deep)
982+
983+
assert sparse_usage < dense_usage
984+
974985

975986
class TestSparseHandlingMultiIndexes(object):
976987

0 commit comments

Comments
 (0)