import pandas as pd
ts = pd.Series([pd.Timestamp('2017-07-31 20:08:46.110998-04:00'),
pd.Timestamp('2017-08-01 20:08:46.110998-04:00'),
pd.Timestamp('2017-08-02 20:08:46.110998-04:00')])
def func(elem):
print(type(elem))
return elem
print(type(ts))
print(type(ts[0]))
ts.apply(func);
# Prints out:
# <class 'pandas.core.series.Series'>
# <class 'pandas._libs.tslib.Timestamp'>
# <class 'pandas.core.indexes.datetimes.DatetimeIndex'>
μΈλ±μ€κ° μλ κ°μΌλ‘ νμ μ€ν¬νκ°μλ μ리μ¦κ° μμ΅λλ€. apply λ©μλκ° κ° μμμμ νΈμΆ λ κ²μΌλ‘ μμνμ§λ§ κ·Έλ μ§ μκ³ μ€νλ € DatetimeIndexμμ νΈμΆλ©λλ€.
pd.show_versions()
μ»€λ° : μμ
νμ΄μ¬ : 3.6.0.final.0
νμ΄μ¬ λΉνΈ : 64
μ΄μ체μ : Darwin
OS λ¦΄λ¦¬μ€ : 16.7.0
μ»΄ν¨ν° : x86_64
νλ‘μΈμ : i386
byteorder : μ‘°κΈ
LC_ALL : μμ
LANG : en_CA.UTF-8
λ‘컬 : en_CA.UTF-8
νλ€ : 0.20.2
pytest : 3.0.5
ν : 9.0.1
setuptools : 35.0.1
Cython : μμ
numpy : 1.13.0
scipy : 0.19.1
xarray : 0.9.6
IPython : 6.0.0
μ€νν¬μ€ : 1.5.3
patsy : μμ
dateutil : 2.6.0
pytz : 2016.10
blosc : μμ
λ³λͺ© νμ : 1.2.0
ν
μ΄λΈ : μμ
numexpr : μμ
κΉνΈ : μμ
matplotlib : 2.0.0
openpyxl : 2.4.8
xlrd : 1.0.0
xlwt : μμ
xlsxwriter : 0.9.8
lxml : μμ
bs4 : μμ
html5lib : 0.999
sqlalchemy : μμ
pymysql : μμ
psycopg2 : μμ
jinja2 : 2.9.5
s3fs : μμ
pandas_gbq : μμ
pandas_datareader : μμ
λν λ΄ μ¬μ© μ¬λ‘μ λν λͺ κ°μ§ μ 보 :
μ리μ¦μ κ° νμ μ€ν¬νμ tz_localize
λ©μλλ₯Ό μ μ©νκ³ μΆμ΅λλ€. μλ μλ¦¬μ¦ μ체μμ tz_localize
λ₯Ό μλνμ§λ§
TypeError: index is not a valid DatetimeIndex or PeriodIndex
reindex
λ₯Ό μ¬μ©νμ¬μ΄λ₯Ό λ¬μ± ν μ μλ€λ κ²μ μκ³ μμ§λ§ Timestampsλ₯Ό Series κ°μΌλ‘ μ¬μ©νμ¬μ΄ μμ
μ μν ν μ μλμ§ κΆκΈν©λλ€.
@nathanielatom μ dt
μ κ·Ό μλ₯Ό ν΅ν΄ μ리μ¦μμ tz_localize
/ tz_convert
λ₯Ό μ¬μ©ν μ μμ΅λλ€.
In [19]: ts.dt.tz_convert('UTC')
Out[19]:
0 2017-08-01 00:08:46.110998+00:00
1 2017-08-02 00:08:46.110998+00:00
2 2017-08-03 00:08:46.110998+00:00
dtype: datetime64[ns, UTC]
λν, apply
νμλλ μΆλ ₯μ μ»λ μ΄μ λ applyκ° λ¨Όμ λͺ¨λ κ°μ λν΄ ν¨μλ₯Ό νΈμΆνλ €κ³ μλνκΈ° λλ¬Έμ
λλ€. ), μ€ν¨νλ κ²½μ°μλ§ κ° μμμμ ν¨μλ₯Ό νΈμΆν©λλ€.
μ€μΉΌλΌ κ°μ μ»μ§ λͺ»νμ λ ν¨μλ₯Ό μ½κ° μ¬λ¦¬λλ‘ μ‘°μ νλ©΄ μμ μΆλ ₯μ΄ νμλ©λλ€.
In [21]: def func(elem):
...: assert not hasattr(elem, 'ndim')
...: print(type(elem))
...: return elem
...:
In [22]: ts.apply(func)
<class 'pandas._libs.tslib.Timestamp'>
<class 'pandas._libs.tslib.Timestamp'>
<class 'pandas._libs.tslib.Timestamp'>
Out[22]:
0 2017-07-31 20:08:46.110998-04:00
1 2017-08-01 20:08:46.110998-04:00
2 2017-08-02 20:08:46.110998-04:00
dtype: datetime64[ns, pytz.FixedOffset(-240)]