Skip to content

Commit ae52904

Browse files
authored
added if statement to pre-existing if statements to check for tz
1 parent 4cb581d commit ae52904

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

pandas/core/dtypes/dtypes.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2277,6 +2277,21 @@ def name(self) -> str: # type: ignore[override]
22772277
@cache_readonly
22782278
def numpy_dtype(self) -> np.dtype:
22792279
"""Return an instance of the related numpy dtype"""
2280+
if pa.types.is_timestamp(self.pyarrow_dtype):
2281+
# pa.timestamp(unit).to_pandas_dtype() returns ns units
2282+
# regardless of the pyarrow timestamp units.
2283+
# This can be removed if/when pyarrow addresses it:
2284+
# https://github.com/apache/arrow/issues/34462
2285+
if self.pyarrow_dtype.tz is not None:
2286+
np.dtype(self.pyarrow_dtype.to_pandas_dtype())
2287+
else:
2288+
return np.dtype(f"datetime64[{self.pyarrow_dtype.unit}]")
2289+
if pa.types.is_duration(self.pyarrow_dtype):
2290+
# pa.duration(unit).to_pandas_dtype() returns ns units
2291+
# regardless of the pyarrow duration units
2292+
# This can be removed if/when pyarrow addresses it:
2293+
# https://github.com/apache/arrow/issues/34462
2294+
return np.dtype(f"timedelta64[{self.pyarrow_dtype.unit}]")
22802295
if pa.types.is_string(self.pyarrow_dtype) or pa.types.is_large_string(
22812296
self.pyarrow_dtype
22822297
):

0 commit comments

Comments
 (0)