|
1 | 1 | import numpy as np
|
2 | 2 | from numpy.random import randn
|
| 3 | +import pytest |
| 4 | + |
3 | 5 | import pandas as pd
|
4 | 6 | from pandas import DataFrame, Index, MultiIndex, Series
|
5 | 7 | import pandas._testing as tm
|
6 | 8 | from pandas.core.reshape.concat import concat
|
7 | 9 | from pandas.core.reshape.merge import merge
|
8 |
| -import pytest |
9 | 10 |
|
10 | 11 |
|
11 | 12 | @pytest.fixture
|
@@ -840,25 +841,32 @@ def test_join_multi_wrong_order(self):
|
840 | 841 |
|
841 | 842 | def test_merge_datetime_index_empty_df():
|
842 | 843 |
|
| 844 | + midx1 = pd.MultiIndex.from_tuples( |
| 845 | + [[pd.Timestamp("1950-01-01"), "A"], [pd.Timestamp("1950-01-02"), "B"]], |
| 846 | + names=["date", "panel"], |
| 847 | + ) |
843 | 848 | frame = DataFrame(
|
844 |
| - { |
845 |
| - "date": [pd.Timestamp("1950-01-01"), pd.Timestamp("1950-01-02")], |
846 |
| - "panel": ["A", "B"], |
| 849 | + data={ |
847 | 850 | "data": [1.5, 1.5],
|
848 |
| - } |
849 |
| - ).set_index(["date", "panel"]) |
850 |
| - other = DataFrame(columns=["date", "panel", "state"]).set_index(["date", "panel"]) |
| 851 | + }, |
| 852 | + index=midx1, |
| 853 | + ) |
| 854 | + |
| 855 | + midx2 = pd.MultiIndex.from_tuples([], names=["date", "panel"]) |
| 856 | + |
| 857 | + other = DataFrame(index=midx2, columns=["state"]) |
| 858 | + |
| 859 | + midx3 = pd.MultiIndex.from_tuples( |
| 860 | + [[pd.Timestamp("1950-01-01"), "A"], [pd.Timestamp("1950-01-02"), "B"]], |
| 861 | + names=["date", "panel"], |
| 862 | + ) |
851 | 863 |
|
852 | 864 | expected = DataFrame(
|
853 |
| - { |
854 |
| - "date": [pd.Timestamp("1950-01-01"), pd.Timestamp("1950-01-02")], |
855 |
| - "panel": ["A", "B"], |
| 865 | + data={ |
856 | 866 | "data": [1.5, 1.5],
|
857 | 867 | "state": [None, None],
|
858 |
| - } |
| 868 | + }, |
| 869 | + index=midx3, |
859 | 870 | )
|
860 |
| - expected = expected.set_index(["date", "panel"]) |
861 |
| - |
862 | 871 | result = frame.merge(other, how="left", on=["date", "panel"])
|
863 |
| - |
864 | 872 | tm.assert_frame_equal(result, expected)
|
0 commit comments