Skip to content

Commit 485769d

Browse files
mroeschkeWillAyd
authored andcommitted
TST: More Regression tests (#31196)
1 parent e6991a5 commit 485769d

File tree

4 files changed

+89
-1
lines changed

4 files changed

+89
-1
lines changed

pandas/tests/io/excel/test_writers.py

+30
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,36 @@ def test_read_excel_parse_dates(self, ext):
258258
)
259259
tm.assert_frame_equal(df, res)
260260

261+
def test_multiindex_interval_datetimes(self, ext):
262+
# GH 30986
263+
midx = pd.MultiIndex.from_arrays(
264+
[
265+
range(4),
266+
pd.interval_range(
267+
start=pd.Timestamp("2020-01-01"), periods=4, freq="6M"
268+
),
269+
]
270+
)
271+
df = pd.DataFrame(range(4), index=midx)
272+
with tm.ensure_clean(ext) as pth:
273+
df.to_excel(pth)
274+
result = pd.read_excel(pth, index_col=[0, 1])
275+
expected = pd.DataFrame(
276+
range(4),
277+
pd.MultiIndex.from_arrays(
278+
[
279+
range(4),
280+
[
281+
"(2020-01-31, 2020-07-31]",
282+
"(2020-07-31, 2021-01-31]",
283+
"(2021-01-31, 2021-07-31]",
284+
"(2021-07-31, 2022-01-31]",
285+
],
286+
]
287+
),
288+
)
289+
tm.assert_frame_equal(result, expected)
290+
261291

262292
@td.skip_if_no("xlrd")
263293
@pytest.mark.parametrize(

pandas/tests/io/json/test_normalize.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44
import pytest
55

6-
from pandas import DataFrame, Index, json_normalize
6+
from pandas import DataFrame, Index, Series, json_normalize
77
import pandas._testing as tm
88

99
from pandas.io.json._normalize import nested_to_record
@@ -728,3 +728,24 @@ def test_deprecated_import(self):
728728

729729
recs = [{"a": 1, "b": 2, "c": 3}, {"a": 4, "b": 5, "c": 6}]
730730
json_normalize(recs)
731+
732+
def test_series_non_zero_index(self):
733+
# GH 19020
734+
data = {
735+
0: {"id": 1, "name": "Foo", "elements": {"a": 1}},
736+
1: {"id": 2, "name": "Bar", "elements": {"b": 2}},
737+
2: {"id": 3, "name": "Baz", "elements": {"c": 3}},
738+
}
739+
s = Series(data)
740+
s.index = [1, 2, 3]
741+
result = json_normalize(s)
742+
expected = DataFrame(
743+
{
744+
"id": [1, 2, 3],
745+
"name": ["Foo", "Bar", "Baz"],
746+
"elements.a": [1.0, np.nan, np.nan],
747+
"elements.b": [np.nan, 2.0, np.nan],
748+
"elements.c": [np.nan, np.nan, 3.0],
749+
}
750+
)
751+
tm.assert_frame_equal(result, expected)

pandas/tests/resample/test_period_index.py

+12
Original file line numberDiff line numberDiff line change
@@ -870,3 +870,15 @@ def test_get_period_range_edges(self, first, last, offset, exp_first, exp_last):
870870
result = _get_period_range_edges(first, last, offset)
871871
expected = (exp_first, exp_last)
872872
assert result == expected
873+
874+
def test_sum_min_count(self):
875+
# GH 19974
876+
index = pd.date_range(start="2018", freq="M", periods=6)
877+
data = np.ones(6)
878+
data[3:6] = np.nan
879+
s = pd.Series(data, index).to_period()
880+
result = s.resample("Q").sum(min_count=1)
881+
expected = pd.Series(
882+
[3.0, np.nan], index=PeriodIndex(["2018Q1", "2018Q2"], freq="Q-DEC")
883+
)
884+
tm.assert_series_equal(result, expected)

pandas/tests/test_multilevel.py

+25
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,31 @@ def manual_compare_stacked(df, df_stacked, lev0, lev1):
891891
)
892892
manual_compare_stacked(df, df.stack(0), 0, 1)
893893

894+
def test_stack_unstack_unordered_multiindex(self):
895+
# GH 18265
896+
values = np.arange(5)
897+
data = np.vstack(
898+
[
899+
["b{}".format(x) for x in values], # b0, b1, ..
900+
["a{}".format(x) for x in values],
901+
]
902+
) # a0, a1, ..
903+
df = pd.DataFrame(data.T, columns=["b", "a"])
904+
df.columns.name = "first"
905+
second_level_dict = {"x": df}
906+
multi_level_df = pd.concat(second_level_dict, axis=1)
907+
multi_level_df.columns.names = ["second", "first"]
908+
df = multi_level_df.reindex(sorted(multi_level_df.columns), axis=1)
909+
result = df.stack(["first", "second"]).unstack(["first", "second"])
910+
expected = DataFrame(
911+
[["a0", "b0"], ["a1", "b1"], ["a2", "b2"], ["a3", "b3"], ["a4", "b4"]],
912+
index=[0, 1, 2, 3, 4],
913+
columns=MultiIndex.from_tuples(
914+
[("a", "x"), ("b", "x")], names=["first", "second"]
915+
),
916+
)
917+
tm.assert_frame_equal(result, expected)
918+
894919
def test_groupby_corner(self):
895920
midx = MultiIndex(
896921
levels=[["foo"], ["bar"], ["baz"]],

0 commit comments

Comments
 (0)