pandas: BUG: pd.offsets.MonthEnd() delevers wrong month
Pandas version checks
-
I have checked that this issue has not already been reported.
-
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
import pandas as pd
ts = pd.Timestamp(2017, 1, 31)
ts + pd.offsets.MonthEnd()
Issue Description
I expect that the answer is: Timestamp(‘2017-01-31 00:00:00’) but I get: Timestamp(‘2017-02-28 00:00:00’)
Expected Behavior
Timestamp(‘2017-01-31 00:00:00’)
Installed Versions
INSTALLED VERSIONS
commit : 4bfe3d07b4858144c219b9346329027024102ab6 python : 3.9.12.final.0 python-bits : 64 OS : Windows OS-release : 10 Version : 10.0.19044 machine : AMD64 processor : Intel64 Family 6 Model 140 Stepping 1, GenuineIntel byteorder : little LC_ALL : None LANG : None LOCALE : Dutch_Netherlands.1252
pandas : 1.4.2 numpy : 1.21.5 pytz : 2021.3 dateutil : 2.8.2 pip : 21.2.4 setuptools : 61.2.0 Cython : 0.29.28 pytest : 7.1.1 hypothesis : None sphinx : 4.4.0 blosc : None feather : None xlsxwriter : 3.0.3 lxml.etree : 4.8.0 html5lib : None pymysql : None psycopg2 : None jinja2 : 2.11.3 IPython : 8.2.0 pandas_datareader: None bs4 : 4.11.1 bottleneck : 1.3.4 brotli : fastparquet : None fsspec : 2022.02.0 gcsfs : None markupsafe : 2.0.1 matplotlib : 3.5.1 numba : 0.55.1 numexpr : 2.8.1 odfpy : None openpyxl : 3.0.9 pandas_gbq : None pyarrow : None pyreadstat : None pyxlsb : None s3fs : None scipy : 1.7.3 snappy : sqlalchemy : 1.4.32 tables : 3.6.1 tabulate : 0.8.9 xarray : 0.20.1 xlrd : 2.0.1 xlwt : None zstandard : None
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 32 (11 by maintainers)
@justin4480 Thanks for taking this further. A good initiative!
A good explanation of general offset logic is here: (in case it helps) https://pandas.pydata.org/docs/user_guide/timeseries.html