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
νμ΄μ¬ λΉνΈ : 64
μ΄μ체μ : Linux
OS λ¦΄λ¦¬μ€ : 4.4.0-42- μΌλ°
μ»΄ν¨ν° : x86_64
νλ‘μΈμ : x86_64
byteorder : μ‘°κΈ
LC_ALL : μμ
LANG : en_US.UTF-8
νλ€ : 0.18.1
μ½ : 1.3.7
ν : 8.1.2
setuptools : 26.1.1
μ¬μ΄ ν€ : 0.24.1
numpy : 1.11.1
scipy : 0.18.0
ν΅κ³ λͺ¨λΈ : 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
lxml : 3.6.4
bs4 : 4.4.1
html5lib : μμ
httplib2 : μμ
apiclient : μμ
sqlalchemy : 1.0.13
pymysql : μμ
psycopg2 : μμ
jinja2 : 2.8
boto : 2.40.0
pandas_datareader : μμ
pd.to_timedelta
λ κ³ μ λ λΈν λ§ μ²λ¦¬ ν μ ββμμ΅λλ€.
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>
BTW, μ΄λ¬ν μ€νμ μ νΉμ μ νμ νμ λΈνλ‘ λ³ν ν μ μμ΅λλ€.
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μ μλ μ€νμ
μ νμ λΈνλ‘ λ³ν ν μ μμΌλ―λ‘ μ€λ₯λ λ°μν©λλ€.
μ견 μ£Όμ μ κ°μ¬ν©λλ€! μ΄μ λ§μ΄λ©λλ€.
κ°μ₯ μ μ©ν λκΈ
pd.to_timedelta
λ κ³ μ λ λΈν λ§ μ²λ¦¬ ν μ ββμμ΅λλ€.μ£Όνμ λ¬Έμμ΄μ κ³ μ λλ μλ λΈν μΌ μμλ
DateOffset
κ°μ²΄λ‘ λ³νν΄μΌνλ κ²½μ°to_offset
ν¨μλ₯Ό μ¬μ©ν©λλ€.