reverting · Daquisu/pandas@2cb449b (original) (raw)

`@@ -169,8 +169,18 @@ def test_transform_axis_1(request, transformation_func):

`

169

169

`msg = "DataFrame.groupby with axis=1 is deprecated"

`

170

170

`with tm.assert_produces_warning(FutureWarning, match=msg):

`

171

171

`gb = df.groupby([0, 0, 1], axis=1)

`

172

``

`-

result = gb.transform(transformation_func, *args)

`

173

``

`-

expected = df.T.groupby([0, 0, 1]).transform(transformation_func, *args).T

`

``

172

+

``

173

`+

pct_change_msg = (

`

``

174

`+

"The default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated"

`

``

175

`+

)

`

``

176

`+

if transformation_func == "pct_change":

`

``

177

`+

with tm.assert_produces_warning(FutureWarning, match=pct_change_msg):

`

``

178

`+

result = gb.transform("pct_change", *args)

`

``

179

`+

with tm.assert_produces_warning(FutureWarning, match=pct_change_msg):

`

``

180

`+

expected = df.T.groupby([0, 0, 1]).transform("pct_change", *args).T

`

``

181

`+

else:

`

``

182

`+

result = gb.transform(transformation_func, *args)

`

``

183

`+

expected = df.T.groupby([0, 0, 1]).transform(transformation_func, *args).T

`

174

184

``

175

185

`if transformation_func in ["diff", "shift"]:

`

176

186

`# Result contains nans, so transpose coerces to float

`

`@@ -404,11 +414,25 @@ def mock_op(x):

`

404

414

`test_op = lambda x: x.transform(transformation_func)

`

405

415

`mock_op = lambda x: getattr(x, transformation_func)()

`

406

416

``

407

``

`-

result = test_op(df.groupby("A"))

`

``

417

`+

msg = "The default fill_method='pad' in DataFrame.pct_change is deprecated"

`

``

418

`+

groupby_msg = (

`

``

419

`+

"The default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated"

`

``

420

`+

)

`

``

421

+

``

422

`+

if transformation_func == "pct_change":

`

``

423

`+

with tm.assert_produces_warning(FutureWarning, match=groupby_msg):

`

``

424

`+

result = test_op(df.groupby("A"))

`

``

425

`+

else:

`

``

426

`+

result = test_op(df.groupby("A"))

`

``

427

+

408

428

`` # pass the group in same order as iterating for ... in df.groupby(...)

``

409

429

`# but reorder to match df's index since this is a transform

`

410

430

`groups = [df[["B"]].iloc[4:6], df[["B"]].iloc[6:], df[["B"]].iloc[:4]]

`

411

``

`-

expected = concat([mock_op(g) for g in groups]).sort_index()

`

``

431

`+

if transformation_func == "pct_change":

`

``

432

`+

with tm.assert_produces_warning(FutureWarning, match=msg):

`

``

433

`+

expected = concat([mock_op(g) for g in groups]).sort_index()

`

``

434

`+

else:

`

``

435

`+

expected = concat([mock_op(g) for g in groups]).sort_index()

`

412

436

`# sort_index does not preserve the freq

`

413

437

`expected = expected.set_axis(df.index)

`

414

438

``

`@@ -969,14 +993,9 @@ def test_pct_change(frame_or_series, freq, periods, fill_method, limit):

`

969

993

`else:

`

970

994

`expected = expected.to_frame("vals")

`

971

995

``

972

``

`-

msg = (

`

973

``

`-

"The 'fill_method' and 'limit' keywords in "

`

974

``

`-

f"{type(gb).name}.pct_change are deprecated"

`

``

996

`+

result = gb.pct_change(

`

``

997

`+

periods=periods, fill_method=fill_method, limit=limit, freq=freq

`

975

998

` )

`

976

``

`-

with tm.assert_produces_warning(FutureWarning, match=msg):

`

977

``

`-

result = gb.pct_change(

`

978

``

`-

periods=periods, fill_method=fill_method, limit=limit, freq=freq

`

979

``

`-

)

`

980

999

`tm.assert_equal(result, expected)

`

981

1000

``

982

1001

``

`@@ -1394,13 +1413,21 @@ def test_null_group_str_transformer(request, dropna, transformation_func):

`

1394

1413

`args = get_groupby_method_args(transformation_func, df)

`

1395

1414

`gb = df.groupby("A", dropna=dropna)

`

1396

1415

``

``

1416

`+

msg = "The default fill_method='pad' in DataFrame.pct_change is deprecated"

`

``

1417

`+

groupby_msg = (

`

``

1418

`+

"The default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated"

`

``

1419

`+

)

`

``

1420

+

1397

1421

`buffer = []

`

1398

1422

`for k, (idx, group) in enumerate(gb):

`

1399

1423

`if transformation_func == "cumcount":

`

1400

1424

`# DataFrame has no cumcount method

`

1401

1425

`res = DataFrame({"B": range(len(group))}, index=group.index)

`

1402

1426

`elif transformation_func == "ngroup":

`

1403

1427

`res = DataFrame(len(group) * [k], index=group.index, columns=["B"])

`

``

1428

`+

elif transformation_func == "pct_change":

`

``

1429

`+

with tm.assert_produces_warning(FutureWarning, match=msg):

`

``

1430

`+

res = getattr(group[["B"]], "pct_change")(*args)

`

1404

1431

`else:

`

1405

1432

`res = getattr(group[["B"]], transformation_func)(*args)

`

1406

1433

`buffer.append(res)

`

`@@ -1413,7 +1440,11 @@ def test_null_group_str_transformer(request, dropna, transformation_func):

`

1413

1440

`# ngroup/cumcount always returns a Series as it counts the groups, not values

`

1414

1441

`expected = expected["B"].rename(None)

`

1415

1442

``

1416

``

`-

result = gb.transform(transformation_func, *args)

`

``

1443

`+

if transformation_func == "pct_change":

`

``

1444

`+

with tm.assert_produces_warning(FutureWarning, match=groupby_msg):

`

``

1445

`+

result = gb.transform("pct_change", *args)

`

``

1446

`+

else:

`

``

1447

`+

result = gb.transform(transformation_func, *args)

`

1417

1448

``

1418

1449

`tm.assert_equal(result, expected)

`

1419

1450

``

`@@ -1465,13 +1496,21 @@ def test_null_group_str_transformer_series(dropna, transformation_func):

`

1465

1496

`args = get_groupby_method_args(transformation_func, ser)

`

1466

1497

`gb = ser.groupby([1, 1, np.nan], dropna=dropna)

`

1467

1498

``

``

1499

`+

msg = "The default fill_method='pad' in Series.pct_change is deprecated"

`

``

1500

`+

groupby_msg = (

`

``

1501

`+

"The default fill_method='ffill' in SeriesGroupBy.pct_change is deprecated"

`

``

1502

`+

)

`

``

1503

+

1468

1504

`buffer = []

`

1469

1505

`for k, (idx, group) in enumerate(gb):

`

1470

1506

`if transformation_func == "cumcount":

`

1471

1507

`# Series has no cumcount method

`

1472

1508

`res = Series(range(len(group)), index=group.index)

`

1473

1509

`elif transformation_func == "ngroup":

`

1474

1510

`res = Series(k, index=group.index)

`

``

1511

`+

elif transformation_func == "pct_change":

`

``

1512

`+

with tm.assert_produces_warning(FutureWarning, match=msg):

`

``

1513

`+

res = getattr(group, "pct_change")(*args)

`

1475

1514

`else:

`

1476

1515

`res = getattr(group, transformation_func)(*args)

`

1477

1516

`buffer.append(res)

`

`@@ -1480,7 +1519,10 @@ def test_null_group_str_transformer_series(dropna, transformation_func):

`

1480

1519

`buffer.append(Series([np.nan], index=[3], dtype=dtype))

`

1481

1520

`expected = concat(buffer)

`

1482

1521

``

1483

``

`-

with tm.assert_produces_warning(None):

`

``

1522

`+

if transformation_func == "pct_change":

`

``

1523

`+

with tm.assert_produces_warning(FutureWarning, match=groupby_msg):

`

``

1524

`+

result = gb.transform("pct_change", *args)

`

``

1525

`+

else:

`

1484

1526

`result = gb.transform(transformation_func, *args)

`

1485

1527

``

1486

1528

`tm.assert_equal(result, expected)

`

`@@ -1523,6 +1565,14 @@ def test_as_index_no_change(keys, df, groupby_func):

`

1523

1565

`args = get_groupby_method_args(groupby_func, df)

`

1524

1566

`gb_as_index_true = df.groupby(keys, as_index=True)

`

1525

1567

`gb_as_index_false = df.groupby(keys, as_index=False)

`

1526

``

`-

result = gb_as_index_true.transform(groupby_func, *args)

`

1527

``

`-

expected = gb_as_index_false.transform(groupby_func, *args)

`

``

1568

+

``

1569

`+

msg = "The default fill_method='ffill' in DataFrameGroupBy.pct_change is deprecated"

`

``

1570

`+

if groupby_func == "pct_change":

`

``

1571

`+

with tm.assert_produces_warning(FutureWarning, match=msg):

`

``

1572

`+

result = gb_as_index_true.transform("pct_change", *args)

`

``

1573

`+

with tm.assert_produces_warning(FutureWarning, match=msg):

`

``

1574

`+

expected = gb_as_index_false.transform("pct_change", *args)

`

``

1575

`+

else:

`

``

1576

`+

result = gb_as_index_true.transform(groupby_func, *args)

`

``

1577

`+

expected = gb_as_index_false.transform(groupby_func, *args)

`

1528

1578

`tm.assert_equal(result, expected)

`