|
1 | 1 | import numpy as np |
2 | 2 | from numpy.random import randn |
3 | | -import pytest |
4 | | - |
5 | 3 | import pandas as pd |
6 | 4 | from pandas import DataFrame, Index, MultiIndex, Series |
7 | 5 | import pandas._testing as tm |
8 | 6 | from pandas.core.reshape.concat import concat |
9 | 7 | from pandas.core.reshape.merge import merge |
| 8 | +import pytest |
10 | 9 |
|
11 | 10 |
|
12 | 11 | @pytest.fixture |
@@ -458,33 +457,6 @@ def test_merge_na_keys(self): |
458 | 457 |
|
459 | 458 | tm.assert_frame_equal(result, expected) |
460 | 459 |
|
461 | | - def test_merge_datetime_index_empty_df(self): |
462 | | - |
463 | | - date = np.array( |
464 | | - [pd.Timestamp("1950-01-01"), pd.Timestamp("1950-01-02")], |
465 | | - dtype=np.datetime64, |
466 | | - ) |
467 | | - panel = np.array(["A", "B"], dtype=object) |
468 | | - data = np.array([1.5, 1.5], dtype=np.float64) |
469 | | - |
470 | | - frame = DataFrame({"date": date, "panel": panel, "data": data}).set_index( |
471 | | - ["date", "panel"] |
472 | | - ) |
473 | | - other = DataFrame(columns=["date", "panel", "state"]).set_index( |
474 | | - ["date", "panel"] |
475 | | - ) |
476 | | - |
477 | | - state = np.array([np.nan, np.nan], dtype=object) |
478 | | - |
479 | | - expected = DataFrame( |
480 | | - {"date": date, "panel": panel, "data": data, "state": state} |
481 | | - ) |
482 | | - expected = expected.set_index(["date", "panel"]) |
483 | | - |
484 | | - result = frame.merge(other, how="left", on=["date", "panel"]) |
485 | | - |
486 | | - tm.assert_frame_equal(result, expected) |
487 | | - |
488 | 460 | @pytest.mark.parametrize("klass", [None, np.asarray, Series, Index]) |
489 | 461 | def test_merge_datetime_index(self, klass): |
490 | 462 | # see gh-19038 |
@@ -864,3 +836,29 @@ def test_join_multi_wrong_order(self): |
864 | 836 | ) |
865 | 837 |
|
866 | 838 | tm.assert_frame_equal(result, expected) |
| 839 | + |
| 840 | + |
| 841 | +def test_merge_datetime_index_empty_df(): |
| 842 | + |
| 843 | + frame = DataFrame( |
| 844 | + { |
| 845 | + "date": [pd.Timestamp("1950-01-01"), pd.Timestamp("1950-01-02")], |
| 846 | + "panel": ["A", "B"], |
| 847 | + "data": [1.5, 1.5], |
| 848 | + } |
| 849 | + ).set_index(["date", "panel"]) |
| 850 | + other = DataFrame(columns=["date", "panel", "state"]).set_index(["date", "panel"]) |
| 851 | + |
| 852 | + expected = DataFrame( |
| 853 | + { |
| 854 | + "date": [pd.Timestamp("1950-01-01"), pd.Timestamp("1950-01-02")], |
| 855 | + "panel": ["A", "B"], |
| 856 | + "data": [1.5, 1.5], |
| 857 | + "state": [None, None], |
| 858 | + } |
| 859 | + ) |
| 860 | + expected = expected.set_index(["date", "panel"]) |
| 861 | + |
| 862 | + result = frame.merge(other, how="left", on=["date", "panel"]) |
| 863 | + |
| 864 | + tm.assert_frame_equal(result, expected) |
0 commit comments