@@ -163,39 +163,52 @@ def test_groupby_dropna_series_by(dropna, expected):
163
163
164
164
165
165
@pytest .mark .parametrize (
166
- "dropna,expected " ,
166
+ "dropna,input_index,expected_data,expected_index " ,
167
167
[
168
- (True , pd .DataFrame ({"B" : [2 , 2 , 1 ]})),
169
- (False , pd .DataFrame ({"B" : [2 , 2 , 1 , 1 ]})),
168
+ (True , pd .RangeIndex (0 , 4 ), {"B" : [2 , 2 , 1 ]}, pd .RangeIndex (0 , 3 )),
169
+ (True , list ("abcd" ), {"B" : [2 , 2 , 1 ]}, list ("abc" )),
170
+ (
171
+ True ,
172
+ pd .MultiIndex .from_tuples (
173
+ [(1 , "R" ), (1 , "B" ), (2 , "R" ), (2 , "B" )], names = ["num" , "col" ]
174
+ ),
175
+ {"B" : [2 , 2 , 1 ]},
176
+ pd .MultiIndex .from_tuples (
177
+ [(1 , "R" ), (1 , "B" ), (2 , "R" )], names = ["num" , "col" ]
178
+ ),
179
+ ),
180
+ (False , pd .RangeIndex (0 , 4 ), {"B" : [2 , 2 , 1 , 1 ]}, pd .RangeIndex (0 , 4 )),
181
+ (False , list ("abcd" ), {"B" : [2 , 2 , 1 , 1 ]}, list ("abcd" )),
182
+ (
183
+ False ,
184
+ pd .MultiIndex .from_tuples (
185
+ [(1 , "R" ), (1 , "B" ), (2 , "R" ), (2 , "B" )], names = ["num" , "col" ]
186
+ ),
187
+ {"B" : [2 , 2 , 1 , 1 ]},
188
+ pd .MultiIndex .from_tuples (
189
+ [(1 , "R" ), (1 , "B" ), (2 , "R" ), (2 , "B" )], names = ["num" , "col" ]
190
+ ),
191
+ ),
170
192
],
171
193
)
172
- def test_groupby_dataframe_slice_then_transform (dropna , expected ):
194
+ def test_groupby_dataframe_slice_then_transform (
195
+ dropna , input_index , expected_data , expected_index
196
+ ):
173
197
# GH35014 & GH35612
174
198
175
- df = pd .DataFrame ({"A" : [0 , 0 , 1 , None ], "B" : [1 , 2 , 3 , None ]})
199
+ df = pd .DataFrame ({"A" : [0 , 0 , 1 , None ], "B" : [1 , 2 , 3 , None ]}, index = input_index )
176
200
gb = df .groupby ("A" , dropna = dropna )
177
201
178
202
result = gb .transform (len )
203
+ expected = pd .DataFrame (expected_data , index = expected_index )
179
204
tm .assert_frame_equal (result , expected )
180
205
181
206
result = gb [["B" ]].transform (len )
207
+ expected = pd .DataFrame (expected_data , index = expected_index )
182
208
tm .assert_frame_equal (result , expected )
183
209
184
-
185
- @pytest .mark .parametrize (
186
- "dropna,expected" ,
187
- [
188
- (True , pd .Series (data = [2 , 2 , 1 ], name = "B" )),
189
- (False , pd .Series (data = [2 , 2 , 1 , 1 ], name = "B" )),
190
- ],
191
- )
192
- def test_groupby_series_slice_then_transform_ (dropna , expected ):
193
- # GH35014 & GH35612
194
-
195
- df = pd .DataFrame ({"A" : [0 , 0 , 1 , None ], "B" : [1 , 2 , 3 , None ]})
196
- gb = df .groupby ("A" , dropna = dropna )
197
-
198
210
result = gb ["B" ].transform (len )
211
+ expected = pd .Series (expected_data ["B" ], index = expected_index , name = "B" )
199
212
tm .assert_series_equal (result , expected )
200
213
201
214
0 commit comments