|
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