Skip to content

Commit b8fcf5b

Browse files
mroeschkeMatt Roeschke
authored and
Matt Roeschke
committed
BUG: DataFrame.join on tz-aware DatetimeIndex (pandas-dev#25260)
(cherry picked from commit a9a03a2)
1 parent 4728f0b commit b8fcf5b

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

doc/source/whatsnew/v0.24.2.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Bug Fixes
7979
**Reshaping**
8080

8181
-
82-
-
82+
- Bug in :func:`DataFrame.join` when joining on a timezone aware :class:`DatetimeIndex` (:issue:`23931`)
8383
-
8484

8585
**Visualization**

pandas/core/reshape/merge.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,7 @@ def _get_merge_keys(self):
862862
in zip(self.right.index.levels,
863863
self.right.index.codes)]
864864
else:
865-
right_keys = [self.right.index.values]
865+
right_keys = [self.right.index._values]
866866
elif _any(self.right_on):
867867
for k in self.right_on:
868868
if is_rkey(k):

pandas/tests/reshape/merge/test_join.py

+22
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,28 @@ def test_join_multi_to_multi(self, join_type):
773773
with pytest.raises(ValueError, match=msg):
774774
right.join(left, on=['abc', 'xy'], how=join_type)
775775

776+
def test_join_on_tz_aware_datetimeindex(self):
777+
# GH 23931
778+
df1 = pd.DataFrame(
779+
{
780+
'date': pd.date_range(start='2018-01-01', periods=5,
781+
tz='America/Chicago'),
782+
'vals': list('abcde')
783+
}
784+
)
785+
786+
df2 = pd.DataFrame(
787+
{
788+
'date': pd.date_range(start='2018-01-03', periods=5,
789+
tz='America/Chicago'),
790+
'vals_2': list('tuvwx')
791+
}
792+
)
793+
result = df1.join(df2.set_index('date'), on='date')
794+
expected = df1.copy()
795+
expected['vals_2'] = pd.Series([np.nan] * len(expected), dtype=object)
796+
assert_frame_equal(result, expected)
797+
776798

777799
def _check_join(left, right, result, join_col, how='left',
778800
lsuffix='_x', rsuffix='_y'):

0 commit comments

Comments
 (0)