@@ -30,7 +30,7 @@ def test_value_counts(index_or_series_obj):
30
30
result = obj .value_counts ()
31
31
32
32
counter = collections .Counter (obj )
33
- expected = pd .Series (dict (counter .most_common ()), dtype = np . int64 , name = obj .name )
33
+ expected = pd .Series (dict (counter .most_common ()), dtype = "Int64" , name = obj .name )
34
34
expected .index = expected .index .astype (obj .dtype )
35
35
if isinstance (obj , pd .MultiIndex ):
36
36
expected .index = pd .Index (expected .index )
@@ -67,7 +67,7 @@ def test_value_counts_null(null_obj, index_or_series_obj):
67
67
# because np.nan == np.nan is False, but None == None is True
68
68
# np.nan would be duplicated, whereas None wouldn't
69
69
counter = collections .Counter (obj .dropna ())
70
- expected = pd .Series (dict (counter .most_common ()), dtype = np . int64 )
70
+ expected = pd .Series (dict (counter .most_common ()), dtype = "Int64" )
71
71
expected .index = expected .index .astype (obj .dtype )
72
72
73
73
result = obj .value_counts ()
@@ -80,7 +80,7 @@ def test_value_counts_null(null_obj, index_or_series_obj):
80
80
81
81
# can't use expected[null_obj] = 3 as
82
82
# IntervalIndex doesn't allow assignment
83
- new_entry = pd .Series ({np .nan : 3 }, dtype = np . int64 )
83
+ new_entry = pd .Series ({np .nan : 3 }, dtype = "Int64" )
84
84
expected = expected .append (new_entry )
85
85
86
86
result = obj .value_counts (dropna = False )
@@ -96,7 +96,7 @@ def test_value_counts_inferred(index_or_series):
96
96
klass = index_or_series
97
97
s_values = ["a" , "b" , "b" , "b" , "b" , "c" , "d" , "d" , "a" , "a" ]
98
98
s = klass (s_values )
99
- expected = Series ([4 , 3 , 2 , 1 ], index = ["b" , "a" , "d" , "c" ])
99
+ expected = Series ([4 , 3 , 2 , 1 ], index = ["b" , "a" , "d" , "c" ], dtype = "Int64" )
100
100
tm .assert_series_equal (s .value_counts (), expected )
101
101
102
102
if isinstance (s , Index ):
@@ -110,17 +110,17 @@ def test_value_counts_inferred(index_or_series):
110
110
# don't sort, have to sort after the fact as not sorting is
111
111
# platform-dep
112
112
hist = s .value_counts (sort = False ).sort_values ()
113
- expected = Series ([3 , 1 , 4 , 2 ], index = list ("acbd" )).sort_values ()
113
+ expected = Series ([3 , 1 , 4 , 2 ], index = list ("acbd" ), dtype = "Int64" ).sort_values ()
114
114
tm .assert_series_equal (hist , expected )
115
115
116
116
# sort ascending
117
117
hist = s .value_counts (ascending = True )
118
- expected = Series ([1 , 2 , 3 , 4 ], index = list ("cdab" ))
118
+ expected = Series ([1 , 2 , 3 , 4 ], index = list ("cdab" ), dtype = "Int64" )
119
119
tm .assert_series_equal (hist , expected )
120
120
121
121
# relative histogram.
122
122
hist = s .value_counts (normalize = True )
123
- expected = Series ([0.4 , 0.3 , 0.2 , 0.1 ], index = ["b" , "a" , "d" , "c" ])
123
+ expected = Series ([0.4 , 0.3 , 0.2 , 0.1 ], index = ["b" , "a" , "d" , "c" ], dtype = "float64" )
124
124
tm .assert_series_equal (hist , expected )
125
125
126
126
@@ -136,39 +136,41 @@ def test_value_counts_bins(index_or_series):
136
136
137
137
s1 = Series ([1 , 1 , 2 , 3 ])
138
138
res1 = s1 .value_counts (bins = 1 )
139
- exp1 = Series ({Interval (0.997 , 3.0 ): 4 })
139
+ exp1 = Series ({Interval (0.997 , 3.0 ): 4 }, dtype = "Int64" )
140
140
tm .assert_series_equal (res1 , exp1 )
141
141
res1n = s1 .value_counts (bins = 1 , normalize = True )
142
- exp1n = Series ({Interval (0.997 , 3.0 ): 1.0 })
142
+ exp1n = Series ({Interval (0.997 , 3.0 ): 1.0 }, dtype = "float64" )
143
143
tm .assert_series_equal (res1n , exp1n )
144
144
145
145
if isinstance (s1 , Index ):
146
146
tm .assert_index_equal (s1 .unique (), Index ([1 , 2 , 3 ]))
147
147
else :
148
- exp = np .array ([1 , 2 , 3 ], dtype = np . int64 )
148
+ exp = np .array ([1 , 2 , 3 ], dtype = "Int64" )
149
149
tm .assert_numpy_array_equal (s1 .unique (), exp )
150
150
151
151
assert s1 .nunique () == 3
152
152
153
153
# these return the same
154
154
res4 = s1 .value_counts (bins = 4 , dropna = True )
155
155
intervals = IntervalIndex .from_breaks ([0.997 , 1.5 , 2.0 , 2.5 , 3.0 ])
156
- exp4 = Series ([2 , 1 , 1 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]))
156
+ exp4 = Series ([2 , 1 , 1 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]), dtype = "Int64" )
157
157
tm .assert_series_equal (res4 , exp4 )
158
158
159
159
res4 = s1 .value_counts (bins = 4 , dropna = False )
160
160
intervals = IntervalIndex .from_breaks ([0.997 , 1.5 , 2.0 , 2.5 , 3.0 ])
161
- exp4 = Series ([2 , 1 , 1 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]))
161
+ exp4 = Series ([2 , 1 , 1 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]), dtype = "Int64" )
162
162
tm .assert_series_equal (res4 , exp4 )
163
163
164
164
res4n = s1 .value_counts (bins = 4 , normalize = True )
165
- exp4n = Series ([0.5 , 0.25 , 0.25 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]))
165
+ exp4n = Series (
166
+ [0.5 , 0.25 , 0.25 , 0 ], index = intervals .take ([0 , 3 , 1 , 2 ]), dtype = "float64"
167
+ )
166
168
tm .assert_series_equal (res4n , exp4n )
167
169
168
170
# handle NA's properly
169
171
s_values = ["a" , "b" , "b" , "b" , np .nan , np .nan , "d" , "d" , "a" , "a" , "b" ]
170
172
s = klass (s_values )
171
- expected = Series ([4 , 3 , 2 ], index = ["b" , "a" , "d" ])
173
+ expected = Series ([4 , 3 , 2 ], index = ["b" , "a" , "d" ], dtype = "Int64" )
172
174
tm .assert_series_equal (s .value_counts (), expected )
173
175
174
176
if isinstance (s , Index ):
@@ -180,7 +182,7 @@ def test_value_counts_bins(index_or_series):
180
182
assert s .nunique () == 3
181
183
182
184
s = klass ({}) if klass is dict else klass ({}, dtype = object )
183
- expected = Series ([], dtype = np . int64 )
185
+ expected = Series ([], dtype = "Int64" )
184
186
tm .assert_series_equal (s .value_counts (), expected , check_index_type = False )
185
187
# returned dtype differs depending on original
186
188
if isinstance (s , Index ):
@@ -216,7 +218,7 @@ def test_value_counts_datetime64(index_or_series):
216
218
idx = pd .to_datetime (
217
219
["2010-01-01 00:00:00" , "2008-09-09 00:00:00" , "2009-01-01 00:00:00" ]
218
220
)
219
- expected_s = Series ([3 , 2 , 1 ], index = idx )
221
+ expected_s = Series ([3 , 2 , 1 ], index = idx , dtype = "Int64" )
220
222
tm .assert_series_equal (s .value_counts (), expected_s )
221
223
222
224
expected = np_array_datetime64_compat (
@@ -240,7 +242,7 @@ def test_value_counts_datetime64(index_or_series):
240
242
241
243
result = s .value_counts (dropna = False )
242
244
expected_s [pd .NaT ] = 1
243
- tm .assert_series_equal (result , expected_s )
245
+ tm .assert_series_equal (result , expected_s . astype ( "Int64" ) )
244
246
245
247
unique = s .unique ()
246
248
assert unique .dtype == "datetime64[ns]"
@@ -261,7 +263,7 @@ def test_value_counts_datetime64(index_or_series):
261
263
td = klass (td , name = "dt" )
262
264
263
265
result = td .value_counts ()
264
- expected_s = Series ([6 ], index = [Timedelta ("1day" )], name = "dt" )
266
+ expected_s = Series ([6 ], index = [Timedelta ("1day" )], name = "dt" , dtype = "Int64" )
265
267
tm .assert_series_equal (result , expected_s )
266
268
267
269
expected = TimedeltaIndex (["1 days" ], name = "dt" )
0 commit comments