Skip to content

Commit d874ef7

Browse files
committed
Move test to test_function.py and implement PR changes
1 parent 538f8f5 commit d874ef7

File tree

2 files changed

+22
-33
lines changed

2 files changed

+22
-33
lines changed

pandas/tests/groupby/test_function.py

+22
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,28 @@ def test_groupby_non_arithmetic_agg_int_like_precision(i):
400400
assert res.iloc[0].b == data["expected"]
401401

402402

403+
@pytest.mark.parametrize("func, expected", [
404+
("idxmin", {'c_int': [0, 2], 'c_float': [1, 3], 'c_date': [1, 2]}),
405+
("idxmax", {'c_int': [1, 3], 'c_float': [0, 2], 'c_date': [0, 3]})
406+
])
407+
def test_idxmin_idxmax_returns_int_types(func, expected):
408+
# GH 25444
409+
df = pd.DataFrame({'name': ['A', 'A', 'B', 'B'],
410+
'c_int': [1, 2, 3, 4],
411+
'c_float': [4.02, 3.03, 2.04, 1.05],
412+
'c_date': ['2019', '2018', '2016', '2017']})
413+
df['c_date'] = pd.to_datetime(df['c_date'])
414+
415+
result = getattr(df.groupby('name'), func)()
416+
417+
for col in result:
418+
assert result[col].dtype == np.int64
419+
420+
df_expected = pd.DataFrame(expected, index=Index(['A', 'B'], name="name"))
421+
422+
tm.assert_frame_equal(result, df_expected)
423+
424+
403425
def test_fill_consistency():
404426

405427
# GH9221

pandas/tests/groupby/test_groupby.py

-33
Original file line numberDiff line numberDiff line change
@@ -1714,36 +1714,3 @@ def test_groupby_multiindex_nat():
17141714
result = ser.groupby(level=1).mean()
17151715
expected = pd.Series([3., 2.5], index=["a", "b"])
17161716
assert_series_equal(result, expected)
1717-
1718-
1719-
def test_idxmin_idxmax_returns_int_types():
1720-
# GH 25444
1721-
df = pd.DataFrame({'name': ['A', 'A', 'B', 'B'],
1722-
'c_int': [1, 2, 3, 4],
1723-
'c_float': [4.02, 3.03, 2.04, 1.05],
1724-
'c_date': ['2019', '2018', '2016', '2017']})
1725-
df['c_date'] = pd.to_datetime(df['c_date'])
1726-
1727-
idxmins_computed = df.groupby('name').idxmin()
1728-
idxmaxs_computed = df.groupby('name').idxmax()
1729-
1730-
for col in idxmaxs_computed:
1731-
assert idxmins_computed[col].dtype == np.int64
1732-
assert idxmaxs_computed[col].dtype == np.int64
1733-
1734-
idxmins_expected = pd.DataFrame({'c_int': [0, 2],
1735-
'c_float': [1, 3],
1736-
'c_date': [1, 2]},
1737-
index=['A', 'B'])
1738-
1739-
idxmins_expected.index.name = "name"
1740-
1741-
idxmaxs_expected = pd.DataFrame({'c_int': [1, 3],
1742-
'c_float': [0, 2],
1743-
'c_date': [0, 3]},
1744-
index=['A', 'B'])
1745-
1746-
idxmaxs_expected.index.name = "name"
1747-
1748-
assert_frame_equal(idxmins_expected, idxmins_computed)
1749-
assert_frame_equal(idxmaxs_expected, idxmaxs_computed)

0 commit comments

Comments
 (0)