In [2]:
from datetime import datetime
In [4]:
now = datetime.now()
now
Out[4]:
In [5]:
now.year, now.month, now.day
Out[5]:
In [6]:
delta = datetime(2011, 1, 7) - datetime(2008, 6, 24, 8, 15)
delta
Out[6]:
In [7]:
delta.days
Out[7]:
In [8]:
delta.seconds
Out[8]:
In [9]:
from datetime import timedelta
start = datetime(2011, 1, 7)
start + timedelta(12)
Out[9]:
In [10]:
start - 2 * timedelta(12)
Out[10]:
In [11]:
stamp = datetime(2011, 1, 3)
str(stamp)
Out[11]:
In [13]:
stamp.strftime('%Y-%m-%d')
Out[13]:
In [14]:
value = '2011-01-03'
datetime.strptime(value, '%Y-%m-%d')
Out[14]:
In [15]:
datestrs = ['7/6/2011', '8/6/2011']
[datetime.strptime(x, '%m/%d/%Y') for x in datestrs]
Out[15]:
In [16]:
from dateutil.parser import parse
parse('2011-01-03')
Out[16]:
In [17]:
parse('Jan 31, 1997 10:45 PM')
Out[17]:
In [18]:
parse('6/12/2011', dayfirst=True)
Out[18]:
In [19]:
datestrs
Out[19]:
In [20]:
import pandas as pd
In [21]:
pd.to_datetime(datestrs)
Out[21]:
In [25]:
idx = pd.to_datetime(datestrs + [None])
idx
Out[25]:
In [26]:
pd.isnull(pd.to_datetime(datestrs + [None]))
Out[26]:
In [29]:
from pandas import Series, DataFrame
import numpy as np
dates = [datetime(2011, 1, 2), datetime(2011, 1, 5), datetime(2011, 1, 7),
datetime(2011, 1, 8), datetime(2011, 1, 10), datetime(2011, 1, 12)]
ts = Series(np.random.randn(6), index=dates)
ts
Out[29]:
In [30]:
type(ts)
Out[30]:
In [31]:
ts + ts[::2]
Out[31]:
In [32]:
ts.index.dtype
Out[32]:
In [33]:
ts.index[0]
Out[33]:
In [34]:
ts['1/10/2011']
Out[34]:
In [35]:
ts['20110110']
Out[35]:
In [36]:
longer_ts = Series(np.random.randn(1000),
index=pd.date_range('1/1/2000', periods=1000))
longer_ts
Out[36]:
In [37]:
longer_ts['2001']
Out[37]:
In [38]:
longer_ts['2001-05']
Out[38]:
In [39]:
ts[datetime(2011, 1, 7):]
Out[39]:
In [40]:
ts
Out[40]:
In [41]:
ts['1/6/2011':'1/11/2011']
Out[41]:
In [42]:
ts.truncate(after='1/9/2011')
Out[42]:
In [43]:
dates = pd.date_range('1/1/2000', periods=100, freq='W-WED')
long_df = DataFrame(np.random.randn(100, 4),
index=dates,
columns=['Colorado', 'Texas', 'New York', 'Ohio'])
long_df.ix['5-2001']
Out[43]:
In [44]:
dates = pd.DatetimeIndex(['1/1/2000', '1/2/2000', '1/2/2000', '1/2/2000',
'1/3/2000'])
dup_ts = Series(np.arange(5), index=dates)
dup_ts
Out[44]:
In [49]:
dup_ts.index.is_unique
Out[49]:
In [50]:
dup_ts['1/3/2000']
Out[50]:
In [51]:
dup_ts['1/2/2000']
Out[51]:
In [52]:
grouped = dup_ts.groupby(level=0)
grouped.mean()
Out[52]:
In [53]:
grouped.count()
Out[53]:
In [54]:
ts
Out[54]:
In [55]:
ts.resample('D')
Out[55]:
In [56]:
index = pd.date_range('4/1/2012', '6/1/2012')
index
Out[56]:
In [57]:
pd.date_range(start='4/1/2012', periods=20)
Out[57]:
In [58]:
pd.date_range(end='6/1/2012', periods=20)
Out[58]:
In [59]:
pd.date_range('1/1/2000', '12/1/2000', freq='BM')
Out[59]:
In [60]:
pd.date_range('5/2/2012 12:56:31', periods=5)
Out[60]:
In [61]:
pd.date_range('5/2/2012 12:56:31', periods=5, normalize=True)
Out[61]:
In [62]:
from pandas.tseries.offsets import Hour, Minute
hour = Hour()
hour
Out[62]:
In [63]:
four_hours = Hour(4)
four_hours
Out[63]:
In [64]:
pd.date_range('1/1/2000', '1/3/2000 23:59', freq='4h')
Out[64]:
In [65]:
Hour(2) + Minute(30)
Out[65]:
In [66]:
pd.date_range('1/1/2000', periods=10, freq='1h30min')
Out[66]:
In [67]:
rng = pd.date_range('1/1/2012', '9/1/2012', freq='WOM-3FRI')
list(rng)
Out[67]:
In [68]:
ts = Series(np.random.randn(4),
index=pd.date_range('1/1/2000', periods=4, freq='M'))
ts
Out[68]:
In [69]:
ts.shift(2)
Out[69]:
In [70]:
ts.shift(-2)
Out[70]:
In [71]:
ts / ts.shift(1) - 1
Out[71]:
In [72]:
ts.shift(2, freq='M')
Out[72]:
In [73]:
ts.shift(3, freq='D')
Out[73]:
In [74]:
ts.shift(1, freq='3D')
Out[74]:
In [75]:
ts.shift(1, freq='90T')
Out[75]:
In [76]:
from pandas.tseries.offsets import Day, MonthEnd
now = datetime(2011, 11, 17)
now + 3 * Day()
Out[76]:
In [77]:
now + MonthEnd()
Out[77]:
In [78]:
now + MonthEnd(2)
Out[78]:
In [79]:
offset = MonthEnd()
offset.rollforward(now)
Out[79]:
In [80]:
offset.rollback(now)
Out[80]:
In [81]:
ts = Series(np.random.randn(20),
index=pd.date_range('1/15/2000', periods=20, freq='4d'))
ts.groupby(offset.rollforward).mean()
Out[81]:
In [83]:
ts.resample('M').mean()
Out[83]:
In [ ]: