Skip to content

Timedelta error:one month NOT exactly #16335

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
princelai opened this issue May 12, 2017 · 3 comments
Closed

Timedelta error:one month NOT exactly #16335

princelai opened this issue May 12, 2017 · 3 comments
Labels
Needs Info Clarification about behavior needed to assess issue Timedelta Timedelta data type

Comments

@princelai
Copy link

Code Sample, a copy-pastable example if possible

pd.Timedelta(1,unit='M')
Out[119]: Timedelta('30 days 10:29:06')

pd.Timedelta(2,unit='M')
Out[120]: Timedelta('60 days 20:58:12')

pd.Timedelta(1,unit='d')
Out[121]: Timedelta('1 days 00:00:00')

Problem description

only month has problem.
day and week works #fine.
pandas version 0.19 yield right result ,but 0.20+ goes wrong

Expected Output

Output of pd.show_versions()

pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 3.6.1.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: en
LOCALE: None.None

pandas: 0.20.1
pytest: 3.0.7
pip: 9.0.1
setuptools: 35.0.1
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
xarray: None
IPython: 6.0.0
sphinx: 1.5.5
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.0
tables: 3.2.2
numexpr: 2.6.2
feather: None
matplotlib: 2.0.1
openpyxl: 2.4.1
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.3
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.1.9
pymysql: 0.7.11.None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None

@jorisvandenbossche
Copy link
Member

Can you show the output that you think is correct for pandas 0.19 ?

I get a consistent (but maybe wrong, that could be discussed) output for the latest releases:

In [52]: pd.__version__
Out[52]: '0.21.0.dev+19.g69a5d6f.dirty'

In [53]: pd.Timedelta(1, unit='M')
Out[53]: Timedelta('30 days 10:29:06')
In [2]: pd.__version__
Out[2]: '0.19.2'

In [3]: pd.Timedelta(1, unit='M')
Out[3]: Timedelta('30 days 10:29:06')
In [1]: pd.__version__
Out[1]: u'0.18.1'

In [2]: pd.Timedelta(1, unit='M')
Out[2]: Timedelta('30 days 10:29:06')

That said, I think we should actually disallow the M unit, as this does not make sense. Timedelta is made for fixed intervals (with a fixed length), not for relative / variable length periods (which a 'month' is, in constrast with eg a 'day')

@jorisvandenbossche jorisvandenbossche added the Needs Info Clarification about behavior needed to assess issue label May 12, 2017
@jreback
Copy link
Contributor

jreback commented May 12, 2017

xref to #12691

this was for numpy compat. I agree, let's deprecate passing 'M', 'Y' on construction (see also the xref #12691 where they are passed as strings).

@jreback jreback added Deprecate Functionality to remove in pandas Difficulty Intermediate Timedelta Timedelta data type and removed Needs Info Clarification about behavior needed to assess issue labels May 12, 2017
@jreback jreback added this to the Next Major Release milestone May 12, 2017
@jreback jreback changed the title Timedelta error:one month NOT exactly DEPR: Timedelta with passed M, Y May 12, 2017
@jorisvandenbossche jorisvandenbossche changed the title DEPR: Timedelta with passed M, Y Timedelta error:one month NOT exactly May 12, 2017
@jorisvandenbossche jorisvandenbossche added Needs Info Clarification about behavior needed to assess issue and removed Deprecate Functionality to remove in pandas Difficulty Intermediate labels May 12, 2017
@jorisvandenbossche jorisvandenbossche modified the milestones: No action, Next Major Release May 12, 2017
@jorisvandenbossche
Copy link
Member

@jreback opened an new issue for the deprecation (the top post is then cleaner)

@princelai Closing this issue, as I don't see a difference between 0.19.2 and 0.20.1. But if you actually see it, please post the full output of code and result in both versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs Info Clarification about behavior needed to assess issue Timedelta Timedelta data type
Projects
None yet
Development

No branches or pull requests

3 participants