Skip to content

BUG: incorrect output of first('1M') in case if first index is the last day of the month #29623

@vfilimonov

Description

@vfilimonov

Code Sample

x = pd.Series(1, index=pd.bdate_range('2010-03-31', periods=100))
print(x.first('1M'))  # Returns March and April
print(x.first('2M'))  # Returns March, April and May
# etc...

Problem description

In case if the first index of the series falls on the last day of the month, Series.first('1M') returns two first months (this one day + the next month).

If the first value is not on the last day of the month - result is correct:

x = pd.Series(1, index=pd.bdate_range('2010-03-30', periods=100))
print(x.first('1M'))  # Returns only March
print(x.first('2M'))  # Returns March and April
# etc...

Output of pd.show_versions()

INSTALLED VERSIONS

commit : None
python : 3.7.1.final.0
python-bits : 64
OS : Darwin
OS-release : 18.7.0
machine : x86_64
processor : i386
byteorder : little
LC_ALL : en_US.UTF-8
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8

pandas : 0.25.3
numpy : 1.17.2
pytz : 2019.3
dateutil : 2.8.0
pip : 19.3.1
setuptools : 41.4.0
Cython : None
pytest : 5.2.1
hypothesis : None
sphinx : 2.2.0
blosc : None
feather : None
xlsxwriter : None
lxml.etree : 4.4.1
html5lib : None
pymysql : 0.9.3
psycopg2 : None
jinja2 : 2.10.1
IPython : 7.8.0
pandas_datareader: None
bs4 : 4.6.3
bottleneck : None
fastparquet : 0.1.6
gcsfs : None
lxml.etree : 4.4.1
matplotlib : 3.0.1
numexpr : 2.7.0
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : 0.12.1
pytables : None
s3fs : 0.3.4
scipy : 1.3.1
sqlalchemy : 1.3.8
tables : 3.4.4
xarray : None
xlrd : 1.1.0
xlwt : None
xlsxwriter : None

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions