Skip to content

Commit 114d552

Browse files
mroeschkejreback
authored andcommitted
TST: Add tests for fixed issues (#30444)
1 parent d8d12d6 commit 114d552

File tree

3 files changed

+72
-0
lines changed

3 files changed

+72
-0
lines changed

pandas/tests/indexing/multiindex/test_loc.py

+26
Original file line numberDiff line numberDiff line change
@@ -411,3 +411,29 @@ def test_loc_setitem_single_column_slice():
411411
df.loc[:, "B"] = np.arange(4)
412412
expected.iloc[:, 2] = np.arange(4)
413413
tm.assert_frame_equal(df, expected)
414+
415+
416+
def test_loc_nan_multiindex():
417+
# GH 5286
418+
tups = [
419+
("Good Things", "C", np.nan),
420+
("Good Things", "R", np.nan),
421+
("Bad Things", "C", np.nan),
422+
("Bad Things", "T", np.nan),
423+
("Okay Things", "N", "B"),
424+
("Okay Things", "N", "D"),
425+
("Okay Things", "B", np.nan),
426+
("Okay Things", "D", np.nan),
427+
]
428+
df = DataFrame(
429+
np.ones((8, 4)),
430+
columns=Index(["d1", "d2", "d3", "d4"]),
431+
index=MultiIndex.from_tuples(tups, names=["u1", "u2", "u3"]),
432+
)
433+
result = df.loc["Good Things"].loc["C"]
434+
expected = DataFrame(
435+
np.ones((1, 4)),
436+
index=Index([np.nan], dtype="object", name="u3"),
437+
columns=Index(["d1", "d2", "d3", "d4"], dtype="object"),
438+
)
439+
tm.assert_frame_equal(result, expected)

pandas/tests/resample/test_datetime_index.py

+17
Original file line numberDiff line numberDiff line change
@@ -1564,3 +1564,20 @@ def test_get_timestamp_range_edges(first, last, offset, exp_first, exp_last):
15641564
result = _get_timestamp_range_edges(first, last, offset)
15651565
expected = (exp_first, exp_last)
15661566
assert result == expected
1567+
1568+
1569+
def test_resample_apply_product():
1570+
# GH 5586
1571+
index = date_range(start="2012-01-31", freq="M", periods=12)
1572+
1573+
ts = Series(range(12), index=index)
1574+
df = DataFrame(dict(A=ts, B=ts + 2))
1575+
result = df.resample("Q").apply(np.product)
1576+
expected = DataFrame(
1577+
np.array([[0, 24], [60, 210], [336, 720], [990, 1716]], dtype=np.int64),
1578+
index=DatetimeIndex(
1579+
["2012-03-31", "2012-06-30", "2012-09-30", "2012-12-31"], freq="Q-DEC"
1580+
),
1581+
columns=["A", "B"],
1582+
)
1583+
tm.assert_frame_equal(result, expected)

pandas/tests/reshape/merge/test_join.py

+29
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,35 @@ def test_join_on_tz_aware_datetimeindex(self):
764764
expected["vals_2"] = pd.Series([np.nan] * 2 + list("tuv"), dtype=object)
765765
tm.assert_frame_equal(result, expected)
766766

767+
def test_join_datetime_string(self):
768+
# GH 5647
769+
dfa = DataFrame(
770+
[
771+
["2012-08-02", "L", 10],
772+
["2012-08-02", "J", 15],
773+
["2013-04-06", "L", 20],
774+
["2013-04-06", "J", 25],
775+
],
776+
columns=["x", "y", "a"],
777+
)
778+
dfa["x"] = pd.to_datetime(dfa["x"])
779+
dfb = DataFrame(
780+
[["2012-08-02", "J", 1], ["2013-04-06", "L", 2]],
781+
columns=["x", "y", "z"],
782+
index=[2, 4],
783+
)
784+
dfb["x"] = pd.to_datetime(dfb["x"])
785+
result = dfb.join(dfa.set_index(["x", "y"]), on=["x", "y"])
786+
expected = DataFrame(
787+
[
788+
[pd.Timestamp("2012-08-02 00:00:00"), "J", 1, 15],
789+
[pd.Timestamp("2013-04-06 00:00:00"), "L", 2, 20],
790+
],
791+
index=[2, 4],
792+
columns=["x", "y", "z", "a"],
793+
)
794+
tm.assert_frame_equal(result, expected)
795+
767796

768797
def _check_join(left, right, result, join_col, how="left", lsuffix="_x", rsuffix="_y"):
769798

0 commit comments

Comments
 (0)