Pandas version checks

  • [X] I have checked that this issue has not already been reported.

  • [X] I have confirmed this bug exists on the latest version of pandas.

  • [ ] I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

(Pdb) data
[136457654736252, 134736784364431, 245345345545332, 223432411, 2343241, 3634548734, 23234]
(Pdb) dtype
'timedelta64[s]'
(Pdb) np.array(data, dtype=dtype)
array([136457654736252, 134736784364431, 245345345545332,       223432411,
               2343241,      3634548734,           23234],
      dtype='timedelta64[s]')
(Pdb) pd.Series(np.array(data, dtype=dtype))
0   1579371003 days 21:24:12
1   1559453522 days 17:40:31
2   2839645203 days 01:42:12
3         2586 days 00:33:31
4           27 days 02:54:01
5        42066 days 12:52:14
6            0 days 06:27:14
dtype: timedelta64[s]
(Pdb) psr = pd.Series(np.array(data, dtype=dtype))
(Pdb) psr.dt.days
0    1579371003
1    1559453522
2   -1455322093       # Overflowing because of `int32` output dtype.
3          2586
4            27
5         42066
6             0
dtype: int32
(Pdb) pd.Series([1579371003, 1559453522, 1455322093, 2839645203])
0    1579371003
1    1559453522
2    1455322093
3    2839645203      # This value can be fit in `int64` dtype easily.
dtype: int64
(Pdb) pd.Series([1579371003, 1559453522, 1455322093, 2839645203]).astype('int32')
0    1579371003
1    1559453522
2    1455322093
3   -1455322093
dtype: int32

Issue Description

Series.dt.day returns days output in int32 dtype. However, values can go into int64 territory and we should likely be returning int64 if there is an overflow detected or always.

Expected Behavior

(Pdb) psr.dt.days
0    1579371003
1    1559453522
2   2839645203
3          2586
4            27
5         42066
6             0
dtype: int36

Installed Versions

INSTALLED VERSIONS ------------------ commit : c2a7f1ae753737e589617ebaaff673070036d653 python : 3.10.10.final.0 python-bits : 64 OS : Linux OS-release : 4.15.0-76-generic Version : #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020 machine : x86_64 processor : x86_64 byteorder : little LC_ALL : None LANG : en_US.UTF-8 LOCALE : en_US.UTF-8 pandas : 2.0.0rc1 numpy : 1.23.5 pytz : 2023.3 dateutil : 2.8.2 setuptools : 67.6.1 pip : 23.0.1 Cython : 0.29.33 pytest : 7.2.2 hypothesis : 6.70.1 sphinx : 5.3.0 blosc : None feather : None xlsxwriter : None lxml.etree : None html5lib : None pymysql : None psycopg2 : None jinja2 : 3.1.2 IPython : 8.12.0 pandas_datareader: None bs4 : 4.12.0 bottleneck : None brotli : fastparquet : None fsspec : 2023.3.0 gcsfs : None matplotlib : None numba : 0.56.4 numexpr : None odfpy : None openpyxl : None pandas_gbq : None pyarrow : 11.0.0 pyreadstat : None pyxlsb : None s3fs : 2023.3.0 scipy : 1.10.1 snappy : sqlalchemy : 1.4.46 tables : None tabulate : 0.9.0 xarray : None xlrd : None zstandard : None tzdata : None qtpy : None pyqt5 : None

Comment From: mroeschke

Thanks for the report. Yeah with non-nanosecond support look like int32 is probably no longer sufficient for the return types of these attributes