Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ pd.infer_freq
Π±ΡΠ΄Π΅Ρ "D", ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ pd.to_timedelta
ΠΎΠΆΠΈΠ΄Π°Π΅Ρ "1D".
import pandas as pd
dates = pd.date_range(start='2016-10-01', end='2016-10-10', freq='1D')
freq = pd.infer_freq(dates)
delta = pd.to_timedelta(freq)
delta = Timedelta ('1 Π΄Π΅Π½Ρ 00:00:00')
>>> import pandas as pd
>>> dates = pd.date_range(start='2016-10-01', end='2016-10-10', freq='1D')
>>> dates
DatetimeIndex(['2016-10-01', '2016-10-02', '2016-10-03', '2016-10-04',
'2016-10-05', '2016-10-06', '2016-10-07', '2016-10-08',
'2016-10-09', '2016-10-10'],
dtype='datetime64[ns]', freq='D')
>>> freq = pd.infer_freq(dates)
>>> freq
'D'
>>> delta = pd.to_timedelta(freq)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/iivanov/anaconda2/lib/python2.7/site-packages/pandas/util/decorators.py", line 91, in wrapper
return func(*args, **kwargs)
File "/home/iivanov/anaconda2/lib/python2.7/site-packages/pandas/tseries/timedeltas.py", line 102, in to_timedelta
box=box, errors=errors)
File "/home/iivanov/anaconda2/lib/python2.7/site-packages/pandas/tseries/timedeltas.py", line 148, in _coerce_scalar_to_timedelta_type
result = tslib.convert_to_timedelta(r, unit, errors)
File "pandas/tslib.pyx", line 2941, in pandas.tslib.convert_to_timedelta (pandas/tslib.c:52631)
File "pandas/tslib.pyx", line 3256, in pandas.tslib.convert_to_timedelta64 (pandas/tslib.c:56028)
File "pandas/tslib.pyx", line 3188, in pandas.tslib.parse_timedelta_string (pandas/tslib.c:54877)
ValueError: unit abbreviation w/o a number
pd.show_versions()
ΡΠΈΠΊΡΠ°ΡΠΈΡ: ΠΠ΅Ρ
ΠΏΠΈΡΠΎΠ½: 2.7.12.final.0
Π±ΠΈΡΡ Python: 64
ΠΠ‘: Linux
Π Π΅Π»ΠΈΠ· ΠΠ‘: 4.4.0-42-generic
ΠΌΠ°ΡΠΈΠ½Π°: x86_64
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ: x86_64
byteorder: ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ
LC_ALL: ΠΠ΅Ρ
Π―ΠΠ«Π: en_US.UTF-8
ΠΏΠ°Π½Π΄Ρ: 0.18.1
Π½ΠΎΡ: 1.3.7
ΠΏΡΠ½ΠΊΡ: 8.1.2
setuptools: 26.1.1
Cython: 0.24.1
ΡΠΈΡΠ»ΠΎ: 1.11.1
scipy: 0.18.0
statsmodels: 0.6.1
xarray: ΠΠ΅Ρ
IPython: 5.1.0
ΡΡΠΈΠ½ΠΊΡ: 1.4.1
ΠΡΡΡΠΈ: 0.4.1
dateutil: 2.5.3
pytz: 2016.6.1
blosc: ΠΠ΅Ρ
ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ: 1.1.0
ΡΠ°Π±Π»ΠΈΡΡ: 3.2.3.1
numexpr: 2.6.1
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.2
Π»Ρ
ΠΌΠ»: 3.6.4
BS4: 4.4.1
html5lib: ΠΠ΅Ρ
httplib2: ΠΠ΅Ρ
apiclient: ΠΠ΅Ρ
sqlalchemy: 1.0.13
pymysql: ΠΠ΅Ρ
psycopg2: ΠΠ΅Ρ
jinja2: 2.8
Π±ΠΎΡΠΎ: 2.40.0
pandas_datareader: ΠΠ΅Ρ
pd.to_timedelta
ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π΅Π»ΡΡΡ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π½ΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅) - ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡ API, ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΡΡΠΎΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π΄Π΅Π»ΡΡΠ°, ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π΅Π»ΡΡΡ.
In [254]: dates = pd.bdate_range(start='2014-01-01', periods=10)
In [255]: pd.infer_freq(dates)
Out[255]: 'B'
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΎΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ DateOffset
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄Π΅Π»ΡΡΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ to_offset
.
In [253]: from pandas.tseries.frequencies import to_offset
In [256]: to_offset('D')
Out[256]: <Day>
In [257]: to_offset('2D')
Out[257]: <2 * Days>
In [258]: to_offset('B')
Out[258]: <BusinessDay>
ΠΡΡΠ°ΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² timedelta Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ²:
In [19]: pd.to_timedelta(to_offset('D'))
Out[19]: Timedelta('1 days 00:00:00')
In [20]: pd.to_timedelta(to_offset('B'))
...
ValueError: Invalid type for timedelta scalar: <class 'pandas.tseries.offsets.BusinessDay'>
(ΠΈΠ»ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ to_offset('D').delta
)
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ Π²ΡΡΠ΅ Π² @ chris-b1, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² timedelta, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ! Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ».
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
pd.to_timedelta
ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π΅Π»ΡΡΡ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π½ΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅) - ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡ API, ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΡΡΠΎΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π΄Π΅Π»ΡΡΠ°, ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π΅Π»ΡΡΡ.ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΎΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ
DateOffset
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄Π΅Π»ΡΡΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡto_offset
.