Skip to content

Commit 9b5c8e7

Browse files
author
Matt Roeschke
committed
Adjust methods for warning
1 parent 96da473 commit 9b5c8e7

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

pandas/core/arrays/datetimes.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ def _to_m8(key, tz=None):
4545
"""
4646
if not isinstance(key, Timestamp):
4747
# this also converts strings
48-
key = Timestamp(key, tz=tz)
48+
key = Timestamp(key)
49+
if key.tz is not None and tz is not None:
50+
# Don't tz_localize(None) if key was tz-aware already
51+
key = key.tz_convert(tz)
52+
else:
53+
key = key.tz_localize(tz)
4954

5055
return np.int64(conversion.pydt_to_i8(key)).view(_NS_DTYPE)
5156

pandas/core/generic.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -9337,9 +9337,9 @@ def describe_categorical_1d(data):
93379337
tz = data.dt.tz
93389338
asint = data.dropna().values.view('i8')
93399339
names += ['top', 'freq', 'first', 'last']
9340-
result += [Timestamp(top, tz=tz), freq,
9341-
Timestamp(asint.min(), tz=tz),
9342-
Timestamp(asint.max(), tz=tz)]
9340+
result += [Timestamp(top).tz_localize(tz), freq,
9341+
Timestamp(asint.min()).tz_localize(tz),
9342+
Timestamp(asint.max()).tz_localize(tz)]
93439343
else:
93449344
names += ['top', 'freq']
93459345
result += [top, freq]

pandas/core/indexes/datetimes.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,7 @@ def get_value(self, series, key):
944944
def get_value_maybe_box(self, series, key):
945945
# needed to localize naive datetimes
946946
if self.tz is not None:
947-
key = Timestamp(key, tz=self.tz)
947+
key = Timestamp(key).tz_localize(self.tz)
948948
elif not isinstance(key, Timestamp):
949949
key = Timestamp(key)
950950
values = self._engine.get_value(com.values_from_object(series),
@@ -966,9 +966,9 @@ def get_loc(self, key, method=None, tolerance=None):
966966
tolerance = self._convert_tolerance(tolerance, np.asarray(key))
967967

968968
if isinstance(key, datetime):
969-
# needed to localize naive datetimes
969+
# localize tz-naive datetimes OR convert tz-aware datetimes
970970
if key.tzinfo is None:
971-
key = Timestamp(key, tz=self.tz)
971+
key = Timestamp(key).tz_localize(self.tz)
972972
else:
973973
key = Timestamp(key).tz_convert(self.tz)
974974
return Index.get_loc(self, key, method, tolerance)

pandas/io/formats/format.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,7 @@ def _format_datetime64(x, tz=None, nat_rep='NaT'):
12461246
return nat_rep
12471247

12481248
if tz is not None or not isinstance(x, Timestamp):
1249-
x = Timestamp(x, tz=tz)
1249+
x = Timestamp(x).tz_localize(tz)
12501250

12511251
return str(x)
12521252

0 commit comments

Comments
 (0)