In [1]:
import numpy as np
import pandas as pd

In [4]:
s = pd.Series([1,2,3,4,5])
s


Out[4]:
0    1
1    2
2    3
3    4
4    5
dtype: int64

In [5]:
s.index


Out[5]:
Int64Index([0, 1, 2, 3, 4], dtype=int64)

In [6]:
s.values


Out[6]:
array([1, 2, 3, 4, 5])

In [15]:
s2 = pd.Series([1,2,3,4,5], index = ['one', 'two', 'three', 'four', 'five'])
s2


Out[15]:
one      1
two      2
three    3
four     4
five     5
dtype: int64

In [10]:
s2['three']


Out[10]:
3

In [13]:
s2[0]


Out[13]:
1

In [12]:
s2[['one', 'three','two']]


Out[12]:
one      1
three    3
two      2
dtype: int64

In [16]:
s3 = s2[:3]

In [17]:
s3.to_dict()


Out[17]:
{'one': 1, 'three': 3, 'two': 2}

In [18]:
pd.Series(s3.to_dict)


Out[18]:
<bound method Series.to_dict of one      1
two      2
three    3
dtype: int64>

In [19]:
df = pd.DataFrame({'A':s2, 'B':s3})

In [20]:
df


Out[20]:
A B
five 5 NaN
four 4 NaN
one 1 1
three 3 3
two 2 2

In [22]:
df.ix['four']


Out[22]:
A     4
B   NaN
Name: four, dtype: float64

In [ ]:
pd.read_csv()

In [23]:
pwd


Out[23]:
u'/Users/Yigong/Documents/Python/python-seminar/DataFiles_and_Notebooks/Pandas'

In [24]:
ls


Untitled0.ipynb  fred_fx.csv

In [25]:
!head -n 10 fred_fx.csv


DATE,EXJPUS,INTGSBJPM193N,TB6MS
1990-01-01 00:00:00,144.9819,6.64,7.55
1990-02-01 00:00:00,145.6932,6.92,7.7
1990-03-01 00:00:00,153.3082,7.36,7.85
1990-04-01 00:00:00,158.4586,7.24,7.84
1990-05-01 00:00:00,154.0441,6.7,7.76
1990-06-01 00:00:00,153.6957,7.06,7.63
1990-07-01 00:00:00,149.0395,7.48,7.52
1990-08-01 00:00:00,147.4609,8.19,7.38
1990-09-01 00:00:00,138.4405,8.62,7.32

In [27]:
fred = pd.read_csv('fred_fx.csv')

In [28]:
fred


Out[28]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 270 entries, 0 to 269
Data columns (total 4 columns):
DATE             270  non-null values
EXJPUS           270  non-null values
INTGSBJPM193N    269  non-null values
TB6MS            270  non-null values
dtypes: float64(3), object(1)

In [30]:
fred.head()


Out[30]:
DATE EXJPUS INTGSBJPM193N TB6MS
0 1990-01-01 00:00:00 144.9819 6.64 7.55
1 1990-02-01 00:00:00 145.6932 6.92 7.70
2 1990-03-01 00:00:00 153.3082 7.36 7.85
3 1990-04-01 00:00:00 158.4586 7.24 7.84
4 1990-05-01 00:00:00 154.0441 6.70 7.76

In [35]:
fred.DATE[0]


Out[35]:
'1990-01-01 00:00:00'

In [37]:
# ways to convert to date

import dateutil.parser as parser
print parser.parse(fred.DATE[0])


1990-01-01 00:00:00

In [38]:
from datetime import datetime

In [40]:
dates = [datetime.strptime(x, '%Y-%m-%d %H:%M:%S') for x in fred.DATE]

In [41]:
dates


Out[41]:
[datetime.datetime(1990, 1, 1, 0, 0),
 datetime.datetime(1990, 2, 1, 0, 0),
 datetime.datetime(1990, 3, 1, 0, 0),
 datetime.datetime(1990, 4, 1, 0, 0),
 datetime.datetime(1990, 5, 1, 0, 0),
 datetime.datetime(1990, 6, 1, 0, 0),
 datetime.datetime(1990, 7, 1, 0, 0),
 datetime.datetime(1990, 8, 1, 0, 0),
 datetime.datetime(1990, 9, 1, 0, 0),
 datetime.datetime(1990, 10, 1, 0, 0),
 datetime.datetime(1990, 11, 1, 0, 0),
 datetime.datetime(1990, 12, 1, 0, 0),
 datetime.datetime(1991, 1, 1, 0, 0),
 datetime.datetime(1991, 2, 1, 0, 0),
 datetime.datetime(1991, 3, 1, 0, 0),
 datetime.datetime(1991, 4, 1, 0, 0),
 datetime.datetime(1991, 5, 1, 0, 0),
 datetime.datetime(1991, 6, 1, 0, 0),
 datetime.datetime(1991, 7, 1, 0, 0),
 datetime.datetime(1991, 8, 1, 0, 0),
 datetime.datetime(1991, 9, 1, 0, 0),
 datetime.datetime(1991, 10, 1, 0, 0),
 datetime.datetime(1991, 11, 1, 0, 0),
 datetime.datetime(1991, 12, 1, 0, 0),
 datetime.datetime(1992, 1, 1, 0, 0),
 datetime.datetime(1992, 2, 1, 0, 0),
 datetime.datetime(1992, 3, 1, 0, 0),
 datetime.datetime(1992, 4, 1, 0, 0),
 datetime.datetime(1992, 5, 1, 0, 0),
 datetime.datetime(1992, 6, 1, 0, 0),
 datetime.datetime(1992, 7, 1, 0, 0),
 datetime.datetime(1992, 8, 1, 0, 0),
 datetime.datetime(1992, 9, 1, 0, 0),
 datetime.datetime(1992, 10, 1, 0, 0),
 datetime.datetime(1992, 11, 1, 0, 0),
 datetime.datetime(1992, 12, 1, 0, 0),
 datetime.datetime(1993, 1, 1, 0, 0),
 datetime.datetime(1993, 2, 1, 0, 0),
 datetime.datetime(1993, 3, 1, 0, 0),
 datetime.datetime(1993, 4, 1, 0, 0),
 datetime.datetime(1993, 5, 1, 0, 0),
 datetime.datetime(1993, 6, 1, 0, 0),
 datetime.datetime(1993, 7, 1, 0, 0),
 datetime.datetime(1993, 8, 1, 0, 0),
 datetime.datetime(1993, 9, 1, 0, 0),
 datetime.datetime(1993, 10, 1, 0, 0),
 datetime.datetime(1993, 11, 1, 0, 0),
 datetime.datetime(1993, 12, 1, 0, 0),
 datetime.datetime(1994, 1, 1, 0, 0),
 datetime.datetime(1994, 2, 1, 0, 0),
 datetime.datetime(1994, 3, 1, 0, 0),
 datetime.datetime(1994, 4, 1, 0, 0),
 datetime.datetime(1994, 5, 1, 0, 0),
 datetime.datetime(1994, 6, 1, 0, 0),
 datetime.datetime(1994, 7, 1, 0, 0),
 datetime.datetime(1994, 8, 1, 0, 0),
 datetime.datetime(1994, 9, 1, 0, 0),
 datetime.datetime(1994, 10, 1, 0, 0),
 datetime.datetime(1994, 11, 1, 0, 0),
 datetime.datetime(1994, 12, 1, 0, 0),
 datetime.datetime(1995, 1, 1, 0, 0),
 datetime.datetime(1995, 2, 1, 0, 0),
 datetime.datetime(1995, 3, 1, 0, 0),
 datetime.datetime(1995, 4, 1, 0, 0),
 datetime.datetime(1995, 5, 1, 0, 0),
 datetime.datetime(1995, 6, 1, 0, 0),
 datetime.datetime(1995, 7, 1, 0, 0),
 datetime.datetime(1995, 8, 1, 0, 0),
 datetime.datetime(1995, 9, 1, 0, 0),
 datetime.datetime(1995, 10, 1, 0, 0),
 datetime.datetime(1995, 11, 1, 0, 0),
 datetime.datetime(1995, 12, 1, 0, 0),
 datetime.datetime(1996, 1, 1, 0, 0),
 datetime.datetime(1996, 2, 1, 0, 0),
 datetime.datetime(1996, 3, 1, 0, 0),
 datetime.datetime(1996, 4, 1, 0, 0),
 datetime.datetime(1996, 5, 1, 0, 0),
 datetime.datetime(1996, 6, 1, 0, 0),
 datetime.datetime(1996, 7, 1, 0, 0),
 datetime.datetime(1996, 8, 1, 0, 0),
 datetime.datetime(1996, 9, 1, 0, 0),
 datetime.datetime(1996, 10, 1, 0, 0),
 datetime.datetime(1996, 11, 1, 0, 0),
 datetime.datetime(1996, 12, 1, 0, 0),
 datetime.datetime(1997, 1, 1, 0, 0),
 datetime.datetime(1997, 2, 1, 0, 0),
 datetime.datetime(1997, 3, 1, 0, 0),
 datetime.datetime(1997, 4, 1, 0, 0),
 datetime.datetime(1997, 5, 1, 0, 0),
 datetime.datetime(1997, 6, 1, 0, 0),
 datetime.datetime(1997, 7, 1, 0, 0),
 datetime.datetime(1997, 8, 1, 0, 0),
 datetime.datetime(1997, 9, 1, 0, 0),
 datetime.datetime(1997, 10, 1, 0, 0),
 datetime.datetime(1997, 11, 1, 0, 0),
 datetime.datetime(1997, 12, 1, 0, 0),
 datetime.datetime(1998, 1, 1, 0, 0),
 datetime.datetime(1998, 2, 1, 0, 0),
 datetime.datetime(1998, 3, 1, 0, 0),
 datetime.datetime(1998, 4, 1, 0, 0),
 datetime.datetime(1998, 5, 1, 0, 0),
 datetime.datetime(1998, 6, 1, 0, 0),
 datetime.datetime(1998, 7, 1, 0, 0),
 datetime.datetime(1998, 8, 1, 0, 0),
 datetime.datetime(1998, 9, 1, 0, 0),
 datetime.datetime(1998, 10, 1, 0, 0),
 datetime.datetime(1998, 11, 1, 0, 0),
 datetime.datetime(1998, 12, 1, 0, 0),
 datetime.datetime(1999, 1, 1, 0, 0),
 datetime.datetime(1999, 2, 1, 0, 0),
 datetime.datetime(1999, 3, 1, 0, 0),
 datetime.datetime(1999, 4, 1, 0, 0),
 datetime.datetime(1999, 5, 1, 0, 0),
 datetime.datetime(1999, 6, 1, 0, 0),
 datetime.datetime(1999, 7, 1, 0, 0),
 datetime.datetime(1999, 8, 1, 0, 0),
 datetime.datetime(1999, 9, 1, 0, 0),
 datetime.datetime(1999, 10, 1, 0, 0),
 datetime.datetime(1999, 11, 1, 0, 0),
 datetime.datetime(1999, 12, 1, 0, 0),
 datetime.datetime(2000, 1, 1, 0, 0),
 datetime.datetime(2000, 2, 1, 0, 0),
 datetime.datetime(2000, 3, 1, 0, 0),
 datetime.datetime(2000, 4, 1, 0, 0),
 datetime.datetime(2000, 5, 1, 0, 0),
 datetime.datetime(2000, 6, 1, 0, 0),
 datetime.datetime(2000, 7, 1, 0, 0),
 datetime.datetime(2000, 8, 1, 0, 0),
 datetime.datetime(2000, 9, 1, 0, 0),
 datetime.datetime(2000, 10, 1, 0, 0),
 datetime.datetime(2000, 11, 1, 0, 0),
 datetime.datetime(2000, 12, 1, 0, 0),
 datetime.datetime(2001, 1, 1, 0, 0),
 datetime.datetime(2001, 2, 1, 0, 0),
 datetime.datetime(2001, 3, 1, 0, 0),
 datetime.datetime(2001, 4, 1, 0, 0),
 datetime.datetime(2001, 5, 1, 0, 0),
 datetime.datetime(2001, 6, 1, 0, 0),
 datetime.datetime(2001, 7, 1, 0, 0),
 datetime.datetime(2001, 8, 1, 0, 0),
 datetime.datetime(2001, 9, 1, 0, 0),
 datetime.datetime(2001, 10, 1, 0, 0),
 datetime.datetime(2001, 11, 1, 0, 0),
 datetime.datetime(2001, 12, 1, 0, 0),
 datetime.datetime(2002, 1, 1, 0, 0),
 datetime.datetime(2002, 2, 1, 0, 0),
 datetime.datetime(2002, 3, 1, 0, 0),
 datetime.datetime(2002, 4, 1, 0, 0),
 datetime.datetime(2002, 5, 1, 0, 0),
 datetime.datetime(2002, 6, 1, 0, 0),
 datetime.datetime(2002, 7, 1, 0, 0),
 datetime.datetime(2002, 8, 1, 0, 0),
 datetime.datetime(2002, 9, 1, 0, 0),
 datetime.datetime(2002, 10, 1, 0, 0),
 datetime.datetime(2002, 11, 1, 0, 0),
 datetime.datetime(2002, 12, 1, 0, 0),
 datetime.datetime(2003, 1, 1, 0, 0),
 datetime.datetime(2003, 2, 1, 0, 0),
 datetime.datetime(2003, 3, 1, 0, 0),
 datetime.datetime(2003, 4, 1, 0, 0),
 datetime.datetime(2003, 5, 1, 0, 0),
 datetime.datetime(2003, 6, 1, 0, 0),
 datetime.datetime(2003, 7, 1, 0, 0),
 datetime.datetime(2003, 8, 1, 0, 0),
 datetime.datetime(2003, 9, 1, 0, 0),
 datetime.datetime(2003, 10, 1, 0, 0),
 datetime.datetime(2003, 11, 1, 0, 0),
 datetime.datetime(2003, 12, 1, 0, 0),
 datetime.datetime(2004, 1, 1, 0, 0),
 datetime.datetime(2004, 2, 1, 0, 0),
 datetime.datetime(2004, 3, 1, 0, 0),
 datetime.datetime(2004, 4, 1, 0, 0),
 datetime.datetime(2004, 5, 1, 0, 0),
 datetime.datetime(2004, 6, 1, 0, 0),
 datetime.datetime(2004, 7, 1, 0, 0),
 datetime.datetime(2004, 8, 1, 0, 0),
 datetime.datetime(2004, 9, 1, 0, 0),
 datetime.datetime(2004, 10, 1, 0, 0),
 datetime.datetime(2004, 11, 1, 0, 0),
 datetime.datetime(2004, 12, 1, 0, 0),
 datetime.datetime(2005, 1, 1, 0, 0),
 datetime.datetime(2005, 2, 1, 0, 0),
 datetime.datetime(2005, 3, 1, 0, 0),
 datetime.datetime(2005, 4, 1, 0, 0),
 datetime.datetime(2005, 5, 1, 0, 0),
 datetime.datetime(2005, 6, 1, 0, 0),
 datetime.datetime(2005, 7, 1, 0, 0),
 datetime.datetime(2005, 8, 1, 0, 0),
 datetime.datetime(2005, 9, 1, 0, 0),
 datetime.datetime(2005, 10, 1, 0, 0),
 datetime.datetime(2005, 11, 1, 0, 0),
 datetime.datetime(2005, 12, 1, 0, 0),
 datetime.datetime(2006, 1, 1, 0, 0),
 datetime.datetime(2006, 2, 1, 0, 0),
 datetime.datetime(2006, 3, 1, 0, 0),
 datetime.datetime(2006, 4, 1, 0, 0),
 datetime.datetime(2006, 5, 1, 0, 0),
 datetime.datetime(2006, 6, 1, 0, 0),
 datetime.datetime(2006, 7, 1, 0, 0),
 datetime.datetime(2006, 8, 1, 0, 0),
 datetime.datetime(2006, 9, 1, 0, 0),
 datetime.datetime(2006, 10, 1, 0, 0),
 datetime.datetime(2006, 11, 1, 0, 0),
 datetime.datetime(2006, 12, 1, 0, 0),
 datetime.datetime(2007, 1, 1, 0, 0),
 datetime.datetime(2007, 2, 1, 0, 0),
 datetime.datetime(2007, 3, 1, 0, 0),
 datetime.datetime(2007, 4, 1, 0, 0),
 datetime.datetime(2007, 5, 1, 0, 0),
 datetime.datetime(2007, 6, 1, 0, 0),
 datetime.datetime(2007, 7, 1, 0, 0),
 datetime.datetime(2007, 8, 1, 0, 0),
 datetime.datetime(2007, 9, 1, 0, 0),
 datetime.datetime(2007, 10, 1, 0, 0),
 datetime.datetime(2007, 11, 1, 0, 0),
 datetime.datetime(2007, 12, 1, 0, 0),
 datetime.datetime(2008, 1, 1, 0, 0),
 datetime.datetime(2008, 2, 1, 0, 0),
 datetime.datetime(2008, 3, 1, 0, 0),
 datetime.datetime(2008, 4, 1, 0, 0),
 datetime.datetime(2008, 5, 1, 0, 0),
 datetime.datetime(2008, 6, 1, 0, 0),
 datetime.datetime(2008, 7, 1, 0, 0),
 datetime.datetime(2008, 8, 1, 0, 0),
 datetime.datetime(2008, 9, 1, 0, 0),
 datetime.datetime(2008, 10, 1, 0, 0),
 datetime.datetime(2008, 11, 1, 0, 0),
 datetime.datetime(2008, 12, 1, 0, 0),
 datetime.datetime(2009, 1, 1, 0, 0),
 datetime.datetime(2009, 2, 1, 0, 0),
 datetime.datetime(2009, 3, 1, 0, 0),
 datetime.datetime(2009, 4, 1, 0, 0),
 datetime.datetime(2009, 5, 1, 0, 0),
 datetime.datetime(2009, 6, 1, 0, 0),
 datetime.datetime(2009, 7, 1, 0, 0),
 datetime.datetime(2009, 8, 1, 0, 0),
 datetime.datetime(2009, 9, 1, 0, 0),
 datetime.datetime(2009, 10, 1, 0, 0),
 datetime.datetime(2009, 11, 1, 0, 0),
 datetime.datetime(2009, 12, 1, 0, 0),
 datetime.datetime(2010, 1, 1, 0, 0),
 datetime.datetime(2010, 2, 1, 0, 0),
 datetime.datetime(2010, 3, 1, 0, 0),
 datetime.datetime(2010, 4, 1, 0, 0),
 datetime.datetime(2010, 5, 1, 0, 0),
 datetime.datetime(2010, 6, 1, 0, 0),
 datetime.datetime(2010, 7, 1, 0, 0),
 datetime.datetime(2010, 8, 1, 0, 0),
 datetime.datetime(2010, 9, 1, 0, 0),
 datetime.datetime(2010, 10, 1, 0, 0),
 datetime.datetime(2010, 11, 1, 0, 0),
 datetime.datetime(2010, 12, 1, 0, 0),
 datetime.datetime(2011, 1, 1, 0, 0),
 datetime.datetime(2011, 2, 1, 0, 0),
 datetime.datetime(2011, 3, 1, 0, 0),
 datetime.datetime(2011, 4, 1, 0, 0),
 datetime.datetime(2011, 5, 1, 0, 0),
 datetime.datetime(2011, 6, 1, 0, 0),
 datetime.datetime(2011, 7, 1, 0, 0),
 datetime.datetime(2011, 8, 1, 0, 0),
 datetime.datetime(2011, 9, 1, 0, 0),
 datetime.datetime(2011, 10, 1, 0, 0),
 datetime.datetime(2011, 11, 1, 0, 0),
 datetime.datetime(2011, 12, 1, 0, 0),
 datetime.datetime(2012, 1, 1, 0, 0),
 datetime.datetime(2012, 2, 1, 0, 0),
 datetime.datetime(2012, 3, 1, 0, 0),
 datetime.datetime(2012, 4, 1, 0, 0),
 datetime.datetime(2012, 5, 1, 0, 0),
 datetime.datetime(2012, 6, 1, 0, 0)]

In [42]:
pd.DatetimeIndex(dates)


Out[42]:
<class 'pandas.tseries.index.DatetimeIndex'>
[1990-01-01 00:00:00, ..., 2012-06-01 00:00:00]
Length: 270, Freq: None, Timezone: None

In [47]:
# NUmpy array in, DatetimeIndex out
pd.to_datetime(fred.DATE.values)


Out[47]:
<class 'pandas.tseries.index.DatetimeIndex'>
[1990-01-01 00:00:00, ..., 2012-06-01 00:00:00]
Length: 270, Freq: None, Timezone: None

In [48]:
fred


Out[48]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 270 entries, 0 to 269
Data columns (total 4 columns):
DATE             270  non-null values
EXJPUS           270  non-null values
INTGSBJPM193N    269  non-null values
TB6MS            270  non-null values
dtypes: float64(3), object(1)

In [57]:
# try again
fred = pd.read_csv('fred_fx.csv')
fred.dtypes


Out[57]:
DATE              object
EXJPUS           float64
INTGSBJPM193N    float64
TB6MS            float64
dtype: object

In [52]:
from IPython.display import HTML
print fred.to_string()


                    DATE    EXJPUS  INTGSBJPM193N  TB6MS
0    1990-01-01 00:00:00  144.9819          6.640   7.55
1    1990-02-01 00:00:00  145.6932          6.920   7.70
2    1990-03-01 00:00:00  153.3082          7.360   7.85
3    1990-04-01 00:00:00  158.4586          7.240   7.84
4    1990-05-01 00:00:00  154.0441          6.700   7.76
5    1990-06-01 00:00:00  153.6957          7.060   7.63
6    1990-07-01 00:00:00  149.0395          7.480   7.52
7    1990-08-01 00:00:00  147.4609          8.190   7.38
8    1990-09-01 00:00:00  138.4405          8.620   7.32
9    1990-10-01 00:00:00  129.5909          7.680   7.16
10   1990-11-01 00:00:00  129.2155          7.400   7.03
11   1990-12-01 00:00:00  133.8890          7.060   6.70
12   1991-01-01 00:00:00  133.6986          6.830   6.28
13   1991-02-01 00:00:00  130.5358          6.660   5.93
14   1991-03-01 00:00:00  137.3867          6.890   5.92
15   1991-04-01 00:00:00  137.1127          7.000   5.71
16   1991-05-01 00:00:00  138.2218          6.870   5.61
17   1991-06-01 00:00:00  139.7475          7.120   5.75
18   1991-07-01 00:00:00  137.8300          6.800   5.70
19   1991-08-01 00:00:00  136.8164          6.550   5.39
20   1991-09-01 00:00:00  134.2995          6.110   5.25
21   1991-10-01 00:00:00  130.7723          6.020   5.04
22   1991-11-01 00:00:00  129.6321          5.930   4.61
23   1991-12-01 00:00:00  128.0395          5.530   4.10
24   1992-01-01 00:00:00  125.4614          5.530   3.87
25   1992-02-01 00:00:00  127.6989          5.410   3.93
26   1992-03-01 00:00:00  132.8627          5.330   4.18
27   1992-04-01 00:00:00  133.5395          5.480   3.87
28   1992-05-01 00:00:00  130.7710          5.410   3.75
29   1992-06-01 00:00:00  126.8355          5.140   3.77
30   1992-07-01 00:00:00  125.8817          4.740   3.28
31   1992-08-01 00:00:00  126.2310          4.620   3.21
32   1992-09-01 00:00:00  122.5967          4.490   2.96
33   1992-10-01 00:00:00  121.1652          4.410   3.04
34   1992-11-01 00:00:00  123.8800          4.400   3.34
35   1992-12-01 00:00:00  124.0409          4.370   3.36
36   1993-01-01 00:00:00  124.9932          4.310   3.14
37   1993-02-01 00:00:00  120.7595          3.760   3.07
38   1993-03-01 00:00:00  117.0174          4.170   3.05
39   1993-04-01 00:00:00  112.4114          4.260   2.97
40   1993-05-01 00:00:00  110.3430          4.350   3.07
41   1993-06-01 00:00:00  107.4118          4.090   3.20
42   1993-07-01 00:00:00  107.6914          3.900   3.16
43   1993-08-01 00:00:00  103.7650          3.690   3.14
44   1993-09-01 00:00:00  105.5748          3.360   3.06
45   1993-10-01 00:00:00  107.0200          3.110   3.12
46   1993-11-01 00:00:00  107.8765          2.730   3.26
47   1993-12-01 00:00:00  109.9130          2.580   3.23
48   1994-01-01 00:00:00  111.4415          3.290   3.15
49   1994-02-01 00:00:00  106.3011          3.510   3.43
50   1994-03-01 00:00:00  105.0974          3.460   3.78
51   1994-04-01 00:00:00  103.4843          3.510   4.09
52   1994-05-01 00:00:00  103.7533          3.290   4.60
53   1994-06-01 00:00:00  102.5264          3.670   4.55
54   1994-07-01 00:00:00   98.4450          3.800   4.75
55   1994-08-01 00:00:00   99.9404          4.140   4.88
56   1994-09-01 00:00:00   98.7743          3.920   5.04
57   1994-10-01 00:00:00   98.3530          4.080   5.39
58   1994-11-01 00:00:00   98.0440          3.990   5.72
59   1994-12-01 00:00:00  100.1824          3.910   6.21
60   1995-01-01 00:00:00   99.7660          3.950   6.21
61   1995-02-01 00:00:00   98.2368          3.740   6.03
62   1995-03-01 00:00:00   90.5196          3.010   5.89
63   1995-04-01 00:00:00   83.6895          2.790   5.77
64   1995-05-01 00:00:00   85.1127          2.160   5.67
65   1995-06-01 00:00:00   84.6355          2.140   5.42
66   1995-07-01 00:00:00   87.3970          2.170   5.37
67   1995-08-01 00:00:00   94.7383          2.410   5.41
68   1995-09-01 00:00:00  100.5455          1.950   5.30
69   1995-10-01 00:00:00  100.8390          2.010   5.32
70   1995-11-01 00:00:00  101.9400          1.880   5.27
71   1995-12-01 00:00:00  101.8495          2.170   5.13
72   1996-01-01 00:00:00  105.7514          2.320   4.92
73   1996-02-01 00:00:00  105.7880          2.580   4.77
74   1996-03-01 00:00:00  105.9400          2.300   4.96
75   1996-04-01 00:00:00  107.1995          2.550   5.06
76   1996-05-01 00:00:00  106.3423          2.350   5.12
77   1996-06-01 00:00:00  108.9600          2.400   5.25
78   1996-07-01 00:00:00  109.1909          2.530   5.30
79   1996-08-01 00:00:00  107.8659          2.140   5.13
80   1996-09-01 00:00:00  109.9310          2.050   5.24
81   1996-10-01 00:00:00  112.4123          1.800   5.11
82   1996-11-01 00:00:00  112.2958          1.750   5.07
83   1996-12-01 00:00:00  113.9810          1.930   5.04
84   1997-01-01 00:00:00  117.9124          1.770   5.10
85   1997-02-01 00:00:00  122.9621          1.780   5.06
86   1997-03-01 00:00:00  122.7738          1.750   5.26
87   1997-04-01 00:00:00  125.6377          1.850   5.37
88   1997-05-01 00:00:00  119.1924          2.030   5.30
89   1997-06-01 00:00:00  114.2857          1.920   5.13
90   1997-07-01 00:00:00  115.3759          1.700   5.12
91   1997-08-01 00:00:00  117.9295          1.600   5.19
92   1997-09-01 00:00:00  120.8900          1.540   5.09
93   1997-10-01 00:00:00  121.0605          1.350   5.09
94   1997-11-01 00:00:00  125.3817          1.430   5.17
95   1997-12-01 00:00:00  129.7341          1.530   5.24
96   1998-01-01 00:00:00  129.5475          1.420   5.03
97   1998-02-01 00:00:00  125.8516          1.400   5.07
98   1998-03-01 00:00:00  129.0823          1.280   5.04
99   1998-04-01 00:00:00  131.7536          1.080   5.06
100  1998-05-01 00:00:00  134.8960          1.080   5.14
101  1998-06-01 00:00:00  140.3305          1.210   5.12
102  1998-07-01 00:00:00  140.7874          1.150   5.03
103  1998-08-01 00:00:00  144.6800          0.980   4.95
104  1998-09-01 00:00:00  134.4805          0.660   4.63
105  1998-10-01 00:00:00  121.0486          0.690   4.05
106  1998-11-01 00:00:00  120.2895          0.850   4.42
107  1998-12-01 00:00:00  117.0709          1.360   4.40
108  1999-01-01 00:00:00  113.2900          2.100   4.33
109  1999-02-01 00:00:00  116.6684          1.995   4.44
110  1999-03-01 00:00:00  119.4730          1.745   4.47
111  1999-04-01 00:00:00  119.7723          1.405   4.37
112  1999-05-01 00:00:00  121.9995          1.480   4.56
113  1999-06-01 00:00:00  120.7245          1.835   4.82
114  1999-07-01 00:00:00  119.3305          1.785   4.58
115  1999-08-01 00:00:00  113.2268          1.910   4.87
116  1999-09-01 00:00:00  106.8752          1.710   4.88
117  1999-10-01 00:00:00  105.9650          1.810   4.98
118  1999-11-01 00:00:00  104.6485          1.830   5.20
119  1999-12-01 00:00:00  102.5843          1.645   5.44
120  2000-01-01 00:00:00  105.2960          1.710   5.50
121  2000-02-01 00:00:00  109.3885          1.835   5.72
122  2000-03-01 00:00:00  106.3074          1.770   5.85
123  2000-04-01 00:00:00  105.6270          1.760   5.81
124  2000-05-01 00:00:00  108.3205          1.655   6.10
125  2000-06-01 00:00:00  106.1255          1.760   5.97
126  2000-07-01 00:00:00  108.2115          1.675   6.00
127  2000-08-01 00:00:00  108.0804          1.895   6.07
128  2000-09-01 00:00:00  106.8375          1.840   5.98
129  2000-10-01 00:00:00  108.4429          1.815   6.04
130  2000-11-01 00:00:00  109.0095          1.615   6.06
131  2000-12-01 00:00:00  112.2090          1.640   5.68
132  2001-01-01 00:00:00  116.6719          1.500   4.95
133  2001-02-01 00:00:00  116.2337          1.300   4.71
134  2001-03-01 00:00:00  121.5050          1.270   4.28
135  2001-04-01 00:00:00  123.7710          1.290   3.85
136  2001-05-01 00:00:00  121.7682          1.240   3.62
137  2001-06-01 00:00:00  122.3510          1.210   3.45
138  2001-07-01 00:00:00  124.4981          1.330   3.45
139  2001-08-01 00:00:00  121.3670          1.375   3.29
140  2001-09-01 00:00:00  118.6117          1.420   2.63
141  2001-10-01 00:00:00  121.4536          1.300   2.12
142  2001-11-01 00:00:00  122.4055          1.355   1.88
143  2001-12-01 00:00:00  127.5945          1.365   1.78
144  2002-01-01 00:00:00  132.6833          1.480   1.73
145  2002-02-01 00:00:00  133.6426          1.525   1.82
146  2002-03-01 00:00:00  131.0610          1.390   2.01
147  2002-04-01 00:00:00  130.7718          1.370   1.93
148  2002-05-01 00:00:00  126.3750          1.385   1.86
149  2002-06-01 00:00:00  123.2905          1.310   1.79
150  2002-07-01 00:00:00  117.8991          1.310   1.70
151  2002-08-01 00:00:00  118.9927          1.175   1.60
152  2002-09-01 00:00:00  121.0780          1.175   1.60
153  2002-10-01 00:00:00  123.9077          0.985   1.56
154  2002-11-01 00:00:00  121.6079          0.995   1.27
155  2002-12-01 00:00:00  121.8929          0.900   1.24
156  2003-01-01 00:00:00  118.8133          0.800   1.20
157  2003-02-01 00:00:00  119.3379          0.780   1.18
158  2003-03-01 00:00:00  118.6871          0.700   1.13
159  2003-04-01 00:00:00  119.8950          0.605   1.14
160  2003-05-01 00:00:00  117.3681          0.530   1.08
161  2003-06-01 00:00:00  118.3290          0.835   0.92
162  2003-07-01 00:00:00  118.6959          0.935   0.95
163  2003-08-01 00:00:00  118.6624          1.455   1.03
164  2003-09-01 00:00:00  114.8000          1.385   1.01
165  2003-10-01 00:00:00  109.4955          1.460   1.00
166  2003-11-01 00:00:00  109.1778          1.295   1.02
167  2003-12-01 00:00:00  107.7377          1.360   0.99
168  2004-01-01 00:00:00  106.2685          1.310   0.97
169  2004-02-01 00:00:00  106.7079          1.225   0.99
170  2004-03-01 00:00:00  108.5157          1.440   0.99
171  2004-04-01 00:00:00  107.6564          1.530   1.09
172  2004-05-01 00:00:00  112.1960          1.520   1.31
173  2004-06-01 00:00:00  109.4336          1.775   1.60
174  2004-07-01 00:00:00  109.4871          1.850   1.66
175  2004-08-01 00:00:00  110.2336          1.535   1.72
176  2004-09-01 00:00:00  110.0914          1.440   1.87
177  2004-10-01 00:00:00  108.7835          1.490   2.00
178  2004-11-01 00:00:00  104.6990          1.445   2.27
179  2004-12-01 00:00:00  103.8104          1.430   2.43
180  2005-01-01 00:00:00  103.3410          1.320   2.61
181  2005-02-01 00:00:00  104.9442          1.465   2.77
182  2005-03-01 00:00:00  105.2543          1.320   3.00
183  2005-04-01 00:00:00  107.1938          1.235   3.05
184  2005-05-01 00:00:00  106.5952          1.240   3.08
185  2005-06-01 00:00:00  108.7473          1.165   3.13
186  2005-07-01 00:00:00  111.9535          1.305   3.42
187  2005-08-01 00:00:00  110.6065          1.345   3.66
188  2005-09-01 00:00:00  111.2390          1.475   3.67
189  2005-10-01 00:00:00  114.8695          1.545   3.99
190  2005-11-01 00:00:00  118.4540          1.430   4.15
191  2005-12-01 00:00:00  118.4624          1.470   4.18
192  2006-01-01 00:00:00  115.4765          1.560   4.31
193  2006-02-01 00:00:00  117.8605          1.580   4.52
194  2006-03-01 00:00:00  117.2778          1.765   4.62
195  2006-04-01 00:00:00  117.0695          1.920   4.72
196  2006-05-01 00:00:00  111.7305          1.810   4.82
197  2006-06-01 00:00:00  114.6250          1.915   4.97
198  2006-07-01 00:00:00  115.7670          1.920   5.06
199  2006-08-01 00:00:00  115.9243          1.610   4.97
200  2006-09-01 00:00:00  117.2145          1.665   4.89
201  2006-10-01 00:00:00  118.6090          1.710   4.92
202  2006-11-01 00:00:00  117.3205          1.645   4.95
203  2006-12-01 00:00:00  117.3220          1.675   4.88
204  2007-01-01 00:00:00  120.4471          1.695   4.95
205  2007-02-01 00:00:00  120.5047          1.625   4.96
206  2007-03-01 00:00:00  117.2600          1.650   4.89
207  2007-04-01 00:00:00  118.9324          1.620   4.86
208  2007-05-01 00:00:00  120.7732          1.745   4.78
209  2007-06-01 00:00:00  122.6886          1.870   4.76
210  2007-07-01 00:00:00  121.4148          1.790   4.83
211  2007-08-01 00:00:00  116.7335          1.595   4.38
212  2007-09-01 00:00:00  115.0435          1.675   4.05
213  2007-10-01 00:00:00  115.8661          1.600   4.01
214  2007-11-01 00:00:00  111.0729          1.470   3.46
215  2007-12-01 00:00:00  112.4490          1.500   3.23
216  2008-01-01 00:00:00  107.8181          1.430   2.75
217  2008-02-01 00:00:00  107.0300          1.355   2.04
218  2008-03-01 00:00:00  100.7562          1.275   1.48
219  2008-04-01 00:00:00  102.6777          1.575   1.55
220  2008-05-01 00:00:00  104.3595          1.750   1.82
221  2008-06-01 00:00:00  106.9152          1.590   2.13
222  2008-07-01 00:00:00  106.8518          1.530   1.93
223  2008-08-01 00:00:00  109.3624          1.405   1.92
224  2008-09-01 00:00:00  106.5748          1.460   1.61
225  2008-10-01 00:00:00   99.9659          1.465   1.20
226  2008-11-01 00:00:00   96.9656          1.390   0.73
227  2008-12-01 00:00:00   91.2750          1.165   0.26
228  2009-01-01 00:00:00   90.1205          1.290   0.30
229  2009-02-01 00:00:00   92.9158          1.270   0.45
230  2009-03-01 00:00:00   97.8550          1.345   0.42
231  2009-04-01 00:00:00   98.9200          1.420   0.35
232  2009-05-01 00:00:00   96.6445          1.480   0.30
233  2009-06-01 00:00:00   96.6145          1.350   0.31
234  2009-07-01 00:00:00   94.3670          1.410   0.27
235  2009-08-01 00:00:00   94.8971          1.305   0.26
236  2009-09-01 00:00:00   91.2748          1.290   0.21
237  2009-10-01 00:00:00   90.3671          1.405   0.16
238  2009-11-01 00:00:00   89.2674          1.260   0.15
239  2009-12-01 00:00:00   89.9509          1.285   0.17
240  2010-01-01 00:00:00   91.1011          1.315   0.15
241  2010-02-01 00:00:00   90.1395          1.295   0.18
242  2010-03-01 00:00:00   90.7161          1.390   0.22
243  2010-04-01 00:00:00   93.4527          1.280   0.24
244  2010-05-01 00:00:00   91.9730          1.255   0.22
245  2010-06-01 00:00:00   90.8059          1.080   0.19
246  2010-07-01 00:00:00   87.5005          1.065   0.20
247  2010-08-01 00:00:00   85.3727          0.960   0.19
248  2010-09-01 00:00:00   84.3571          0.930   0.19
249  2010-10-01 00:00:00   81.7285          0.930   0.18
250  2010-11-01 00:00:00   82.5180          1.190   0.18
251  2010-12-01 00:00:00   83.3376          1.120   0.19
252  2011-01-01 00:00:00   82.6250          1.210   0.18
253  2011-02-01 00:00:00   82.5368          1.255   0.17
254  2011-03-01 00:00:00   81.6470          1.250   0.16
255  2011-04-01 00:00:00   83.1771          1.200   0.12
256  2011-05-01 00:00:00   81.1257          1.150   0.09
257  2011-06-01 00:00:00   80.4259          1.130   0.10
258  2011-07-01 00:00:00   79.2425          1.075   0.08
259  2011-08-01 00:00:00   76.9657          1.030   0.06
260  2011-09-01 00:00:00   76.7957          1.025   0.04
261  2011-10-01 00:00:00   76.6430          1.045   0.05
262  2011-11-01 00:00:00   77.5595          1.070   0.05
263  2011-12-01 00:00:00   77.7967          0.980   0.05
264  2012-01-01 00:00:00   76.9640          0.960   0.07
265  2012-02-01 00:00:00   78.4700          0.955   0.12
266  2012-03-01 00:00:00   82.4659          0.985   0.14
267  2012-04-01 00:00:00   81.2524          0.885   0.14
268  2012-05-01 00:00:00   79.6668          0.825   0.15
269  2012-06-01 00:00:00   79.3152            NaN   0.15

In [58]:
fred['DATE'] = pd.to_datetime(fred['DATE'])

In [59]:
fred.dtypes


Out[59]:
DATE             datetime64[ns]
EXJPUS                  float64
INTGSBJPM193N           float64
TB6MS                   float64
dtype: object

In [66]:
fred.set_index('DATE', inplace= True)


---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-66-8f8f67d59a58> in <module>()
----> 1 fred.set_index('DATE', inplace= True)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/frame.pyc in set_index(self, keys, drop, append, inplace, verify_integrity)
   2827                 names.append(None)
   2828             else:
-> 2829                 level = frame[col].values
   2830                 names.append(col)
   2831                 if drop:

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
   2001             # get column
   2002             if self.columns.is_unique:
-> 2003                 return self._get_item_cache(key)
   2004 
   2005             # duplicate columns

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/generic.pyc in _get_item_cache(self, item)
    665             return cache[item]
    666         except Exception:
--> 667             values = self._data.get(item)
    668             res = self._box_item_values(item, values)
    669             cache[item] = res

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/internals.pyc in get(self, item)
   1653     def get(self, item):
   1654         if self.items.is_unique:
-> 1655             _, block = self._find_block(item)
   1656             return block.get(item)
   1657         else:

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/internals.pyc in _find_block(self, item)
   1933 
   1934     def _find_block(self, item):
-> 1935         self._check_have(item)
   1936         for i, block in enumerate(self.blocks):
   1937             if item in block:

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/internals.pyc in _check_have(self, item)
   1940     def _check_have(self, item):
   1941         if item not in self.items:
-> 1942             raise KeyError('no item named %s' % com.pprint_thing(item))
   1943 
   1944     def reindex_axis(self, new_axis, method=None, axis=0, copy=True):

KeyError: u'no item named DATE'

In [63]:
a.head()


Out[63]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 144.9819 6.64 7.55
1990-02-01 145.6932 6.92 7.70
1990-03-01 153.3082 7.36 7.85
1990-04-01 158.4586 7.24 7.84
1990-05-01 154.0441 6.70 7.76

In [ ]:
#pandas tries not to delete data

In [67]:
fred.EXJPUS


Out[67]:
DATE
1990-01-01    144.9819
1990-02-01    145.6932
1990-03-01    153.3082
1990-04-01    158.4586
1990-05-01    154.0441
1990-06-01    153.6957
1990-07-01    149.0395
1990-08-01    147.4609
1990-09-01    138.4405
1990-10-01    129.5909
1990-11-01    129.2155
1990-12-01    133.8890
1991-01-01    133.6986
1991-02-01    130.5358
1991-03-01    137.3867
...
2011-04-01    83.1771
2011-05-01    81.1257
2011-06-01    80.4259
2011-07-01    79.2425
2011-08-01    76.9657
2011-09-01    76.7957
2011-10-01    76.6430
2011-11-01    77.5595
2011-12-01    77.7967
2012-01-01    76.9640
2012-02-01    78.4700
2012-03-01    82.4659
2012-04-01    81.2524
2012-05-01    79.6668
2012-06-01    79.3152
Name: EXJPUS, Length: 270, dtype: float64

In [68]:
type(fred.EXJPUS)


Out[68]:
pandas.core.series.TimeSeries

In [70]:
stamp = fred.index[5]

In [79]:
type(stamp)


Out[79]:
pandas.tslib.Timestamp

In [72]:
fred.index.year


Out[72]:
array([1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990,
       1990, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991,
       1991, 1991, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
       1992, 1992, 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
       1993, 1993, 1993, 1993, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
       1994, 1994, 1994, 1994, 1994, 1995, 1995, 1995, 1995, 1995, 1995,
       1995, 1995, 1995, 1995, 1995, 1995, 1996, 1996, 1996, 1996, 1996,
       1996, 1996, 1996, 1996, 1996, 1996, 1996, 1997, 1997, 1997, 1997,
       1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1998, 1998, 1998,
       1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1999, 1999,
       1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 2000,
       2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000,
       2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
       2001, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002,
       2002, 2002, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003,
       2003, 2003, 2003, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
       2004, 2004, 2004, 2004, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
       2005, 2005, 2005, 2005, 2005, 2006, 2006, 2006, 2006, 2006, 2006,
       2006, 2006, 2006, 2006, 2006, 2006, 2007, 2007, 2007, 2007, 2007,
       2007, 2007, 2007, 2007, 2007, 2007, 2007, 2008, 2008, 2008, 2008,
       2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 2009,
       2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010,
       2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2011,
       2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011,
       2012, 2012, 2012, 2012, 2012, 2012], dtype=int32)

In [76]:
fred.EXJPUS.plot()


Out[76]:
<matplotlib.axes.AxesSubplot at 0x10617f390>

In [75]:
%matplotlib


Using matplotlib backend: MacOSX

In [78]:
fred.EXJPUS['1999-05':'2007']


Out[78]:
DATE
1999-05-01    121.9995
1999-06-01    120.7245
1999-07-01    119.3305
1999-08-01    113.2268
1999-09-01    106.8752
1999-10-01    105.9650
1999-11-01    104.6485
1999-12-01    102.5843
2000-01-01    105.2960
2000-02-01    109.3885
2000-03-01    106.3074
2000-04-01    105.6270
2000-05-01    108.3205
2000-06-01    106.1255
2000-07-01    108.2115
...
2006-10-01    118.6090
2006-11-01    117.3205
2006-12-01    117.3220
2007-01-01    120.4471
2007-02-01    120.5047
2007-03-01    117.2600
2007-04-01    118.9324
2007-05-01    120.7732
2007-06-01    122.6886
2007-07-01    121.4148
2007-08-01    116.7335
2007-09-01    115.0435
2007-10-01    115.8661
2007-11-01    111.0729
2007-12-01    112.4490
Name: EXJPUS, Length: 104, dtype: float64

In [81]:
fred.head(20)


Out[81]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 144.9819 6.64 7.55
1990-02-01 145.6932 6.92 7.70
1990-03-01 153.3082 7.36 7.85
1990-04-01 158.4586 7.24 7.84
1990-05-01 154.0441 6.70 7.76
1990-06-01 153.6957 7.06 7.63
1990-07-01 149.0395 7.48 7.52
1990-08-01 147.4609 8.19 7.38
1990-09-01 138.4405 8.62 7.32
1990-10-01 129.5909 7.68 7.16
1990-11-01 129.2155 7.40 7.03
1990-12-01 133.8890 7.06 6.70
1991-01-01 133.6986 6.83 6.28
1991-02-01 130.5358 6.66 5.93
1991-03-01 137.3867 6.89 5.92
1991-04-01 137.1127 7.00 5.71
1991-05-01 138.2218 6.87 5.61
1991-06-01 139.7475 7.12 5.75
1991-07-01 137.8300 6.80 5.70
1991-08-01 136.8164 6.55 5.39

In [85]:
years = fred.index.year
years


Out[85]:
array([1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990,
       1990, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991,
       1991, 1991, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
       1992, 1992, 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
       1993, 1993, 1993, 1993, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
       1994, 1994, 1994, 1994, 1994, 1995, 1995, 1995, 1995, 1995, 1995,
       1995, 1995, 1995, 1995, 1995, 1995, 1996, 1996, 1996, 1996, 1996,
       1996, 1996, 1996, 1996, 1996, 1996, 1996, 1997, 1997, 1997, 1997,
       1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1998, 1998, 1998,
       1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1999, 1999,
       1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 2000,
       2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000,
       2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
       2001, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002,
       2002, 2002, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003,
       2003, 2003, 2003, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
       2004, 2004, 2004, 2004, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
       2005, 2005, 2005, 2005, 2005, 2006, 2006, 2006, 2006, 2006, 2006,
       2006, 2006, 2006, 2006, 2006, 2006, 2007, 2007, 2007, 2007, 2007,
       2007, 2007, 2007, 2007, 2007, 2007, 2007, 2008, 2008, 2008, 2008,
       2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 2009,
       2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010,
       2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2011,
       2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011,
       2012, 2012, 2012, 2012, 2012, 2012], dtype=int32)

In [87]:
annual_min = fred.groupby(years).min()
annual_max = fred.groupby(years).max()

In [89]:
annual_max


Out[89]:
EXJPUS INTGSBJPM193N TB6MS
1990 158.4586 8.620 7.85
1991 139.7475 7.120 6.28
1992 133.5395 5.530 4.18
1993 124.9932 4.350 3.26
1994 111.4415 4.140 6.21
1995 101.9400 3.950 6.21
1996 113.9810 2.580 5.30
1997 129.7341 2.030 5.37
1998 144.6800 1.420 5.14
1999 121.9995 2.100 5.44
2000 112.2090 1.895 6.10
2001 127.5945 1.500 4.95
2002 133.6426 1.525 2.01
2003 119.8950 1.460 1.20
2004 112.1960 1.850 2.43
2005 118.4624 1.545 4.18
2006 118.6090 1.920 5.06
2007 122.6886 1.870 4.96
2008 109.3624 1.750 2.75
2009 98.9200 1.480 0.45
2010 93.4527 1.390 0.24
2011 83.1771 1.255 0.18
2012 82.4659 0.985 0.15

In [92]:
pd.concat([annual_min, annual_max], axis = 1, keys = ['min', 'max'])


Out[92]:
min max
EXJPUS INTGSBJPM193N TB6MS EXJPUS INTGSBJPM193N TB6MS
1990 129.2155 6.640 6.70 158.4586 8.620 7.85
1991 128.0395 5.530 4.10 139.7475 7.120 6.28
1992 121.1652 4.370 2.96 133.5395 5.530 4.18
1993 103.7650 2.580 2.97 124.9932 4.350 3.26
1994 98.0440 3.290 3.15 111.4415 4.140 6.21
1995 83.6895 1.880 5.13 101.9400 3.950 6.21
1996 105.7514 1.750 4.77 113.9810 2.580 5.30
1997 114.2857 1.350 5.06 129.7341 2.030 5.37
1998 117.0709 0.660 4.05 144.6800 1.420 5.14
1999 102.5843 1.405 4.33 121.9995 2.100 5.44
2000 105.2960 1.615 5.50 112.2090 1.895 6.10
2001 116.2337 1.210 1.78 127.5945 1.500 4.95
2002 117.8991 0.900 1.24 133.6426 1.525 2.01
2003 107.7377 0.530 0.92 119.8950 1.460 1.20
2004 103.8104 1.225 0.97 112.1960 1.850 2.43
2005 103.3410 1.165 2.61 118.4624 1.545 4.18
2006 111.7305 1.560 4.31 118.6090 1.920 5.06
2007 111.0729 1.470 3.23 122.6886 1.870 4.96
2008 91.2750 1.165 0.26 109.3624 1.750 2.75
2009 89.2674 1.260 0.15 98.9200 1.480 0.45
2010 81.7285 0.930 0.15 93.4527 1.390 0.24
2011 76.6430 0.980 0.04 83.1771 1.255 0.18
2012 76.9640 0.825 0.07 82.4659 0.985 0.15

In [96]:
annual_minmax = fred.resample('A-DEC', how=['min', 'max'])

In [97]:
annual_minmax.columns


Out[97]:
MultiIndex
[(u'EXJPUS', u'min'), (u'EXJPUS', u'max'), (u'INTGSBJPM193N', u'min'), (u'INTGSBJPM193N', u'max'), (u'TB6MS', u'min'), (u'TB6MS', u'max')]

In [100]:
annual_minmax['EXJPUS', 'min'].index


Out[100]:
<class 'pandas.tseries.index.DatetimeIndex'>
[1990-12-31 00:00:00, ..., 2012-12-31 00:00:00]
Length: 23, Freq: A-DEC, Timezone: None

In [101]:
def mad(x):
    return np.abs(x-x.mean()).mean()

fred.EXJPUS.resample('A-DEC', how = mad)


Out[101]:
DATE
1990-12-31    8.022794
1991-12-31    3.344775
1992-12-31    2.995399
1993-12-31    5.042639
1994-12-31    3.238742
1995-12-31    6.529103
1996-12-31    2.323658
1997-12-31    3.502692
1998-12-31    7.003133
1999-12-31    5.948200
2000-12-31    1.485524
2001-12-31    2.212117
2002-12-31    4.699887
2003-12-31    3.742594
2004-12-31    1.940404
2005-12-31    4.125758
2006-12-31    1.370915
2007-12-31    3.027983
2008-12-31    4.209392
2009-12-31    2.950133
2010-12-31    3.614492
2011-12-31    2.211200
2012-12-31    1.446733
Freq: A-DEC, dtype: float64

In [105]:
import pandas.util.testing as tm
tm.rands(10)


Out[105]:
'P3x2kGa70Q'

In [106]:
choices = np.array([tm.rands(10) for i in xrange(50)])

draws = np.random.randint(0,50, size = 1000)
timestamps = pd.date_range('2013-10-17 13:10', periods=1000,freq = 'S')
ts = pd.Series(choices.take(draws), index = timestamps)

In [107]:
ts


Out[107]:
2013-10-17 13:10:00    bSTalaEmHO
2013-10-17 13:10:01    XLh7R3vIBy
2013-10-17 13:10:02    aPXMUh7EDg
2013-10-17 13:10:03    l2XtXZAOgT
2013-10-17 13:10:04    aPXMUh7EDg
2013-10-17 13:10:05    G7cPVGkpBd
2013-10-17 13:10:06    WYIDeyzhVA
2013-10-17 13:10:07    HZQrap6X7h
2013-10-17 13:10:08    KJMxg77JQ7
2013-10-17 13:10:09    KgccttzQh7
2013-10-17 13:10:10    pqJZl4tGU7
2013-10-17 13:10:11    bo1HcdFR8s
2013-10-17 13:10:12    WYIDeyzhVA
2013-10-17 13:10:13    7xmd8C63Hl
2013-10-17 13:10:14    PuUYImKHcC
...
2013-10-17 13:26:25    velOxo95st
2013-10-17 13:26:26    UM64uaCtIc
2013-10-17 13:26:27    x8JYho87jR
2013-10-17 13:26:28    hLMs1M1c5w
2013-10-17 13:26:29    aPXMUh7EDg
2013-10-17 13:26:30    dwY3P4Soy6
2013-10-17 13:26:31    kC27Sk4vyQ
2013-10-17 13:26:32    t86XCl4Zle
2013-10-17 13:26:33    0f9dqjSXIl
2013-10-17 13:26:34    QC9OWOrM2w
2013-10-17 13:26:35    QC9OWOrM2w
2013-10-17 13:26:36    KJMxg77JQ7
2013-10-17 13:26:37    uaiRuDasqz
2013-10-17 13:26:38    5qabF8unOb
2013-10-17 13:26:39    dwY3P4Soy6
Freq: S, Length: 1000, dtype: object

In [2]:
import pandas as pd

In [3]:
SFhousing = pd.read_csv('SFHousing.csv')

In [112]:
SFhousing.columns


Out[112]:
Index([u'APN', u'ADDRESS', u'Date_Sale', u'Sale_Amount', u'Num_Bedrooms', u'BLKLOT'], dtype=object)

In [116]:
SFhousing['Date_Sale'] = pd.to_datetime(SFhousing['Date_Sale'])

In [114]:
date_sale


Out[114]:
0    2012-01-03 00:00:00
1    2012-01-03 00:00:00
2    2012-01-03 00:00:00
3    2012-01-04 00:00:00
4    2012-01-04 00:00:00
5    2012-01-05 00:00:00
6    2012-01-05 00:00:00
7    2012-01-05 00:00:00
8    2012-01-05 00:00:00
9    2012-01-05 00:00:00
10   2012-01-06 00:00:00
11   2012-01-06 00:00:00
12   2012-01-06 00:00:00
13   2012-01-06 00:00:00
14   2012-01-06 00:00:00
...
1152   2012-11-30 00:00:00
1153   2012-11-30 00:00:00
1154   2012-11-30 00:00:00
1155   2012-11-30 00:00:00
1156   2012-11-30 00:00:00
1157   2012-11-30 00:00:00
1158   2012-11-30 00:00:00
1159   2012-11-30 00:00:00
1160   2012-11-30 00:00:00
1161   2012-11-30 00:00:00
1162   2012-11-30 00:00:00
1163   2012-11-30 00:00:00
1164   2012-11-30 00:00:00
1165   2012-12-11 00:00:00
1166   2012-12-11 00:00:00
Name: Date_Sale, Length: 1167, dtype: datetime64[ns]

In [117]:
SFhousing.set_index('Date_Sale', inplace=True)

In [4]:
SFhousing.head()


Out[4]:
APN ADDRESS Date_Sale Sale_Amount Num_Bedrooms BLKLOT
0 3570 101 566 SOUTH VAN NESS AVE #3 1/3/2012 $425,500 2 3570101
1 3719 181 301 MISSION ST #22E 1/3/2012 $1,160,000 2 3719181
2 8704 277 300 BERRY ST # 1612 1/3/2012 $774,025 2 8704277
3 1836 032 1463 17TH AVE 1/4/2012 $660,000 2 1836032
4 3594 079 3380 20TH ST 302 1/4/2012 $450,000 2 3594079

In [121]:
def count(x):
    result = [ np.int(for a in value[1:].split(',')) for value in x]
    
    return sum(x)

SFhousing.Sale_Amount.resample('M',how = count)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-121-32afb08d0ca6> in <module>()
      2     return sum(x)
      3 
----> 4 SFhousing.Sale_Amount.resample('M',how = count)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/generic.pyc in resample(self, rule, how, axis, fill_method, closed, label, convention, kind, loffset, limit, base)
    288                               fill_method=fill_method, convention=convention,
    289                               limit=limit, base=base)
--> 290         return sampler.resample(self)
    291 
    292     def first(self, offset):

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/tseries/resample.pyc in resample(self, obj)
     81 
     82         if isinstance(axis, DatetimeIndex):
---> 83             rs = self._resample_timestamps(obj)
     84         elif isinstance(axis, PeriodIndex):
     85             offset = to_offset(self.freq)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/tseries/resample.pyc in _resample_timestamps(self, obj)
    224             # Irregular data, have to use groupby
    225             grouped = obj.groupby(grouper, axis=self.axis)
--> 226             result = grouped.aggregate(self._agg_method)
    227 
    228             if self.fill_method is not None:

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in aggregate(self, func_or_funcs, *args, **kwargs)
   1423                 return self._python_agg_general(func_or_funcs, *args, **kwargs)
   1424             except Exception:
-> 1425                 result = self._aggregate_named(func_or_funcs, *args, **kwargs)
   1426 
   1427             index = Index(sorted(result), name=self.grouper.names[0])

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in _aggregate_named(self, func, *args, **kwargs)
   1505         for name, group in self:
   1506             group.name = name
-> 1507             output = func(group, *args, **kwargs)
   1508             if isinstance(output, np.ndarray):
   1509                 raise Exception('Must produce aggregated value')

<ipython-input-121-32afb08d0ca6> in count(x)
      1 def count(x):
----> 2     return sum(x)
      3 
      4 SFhousing.Sale_Amount.resample('M',how = count)

TypeError: unsupported operand type(s) for +: 'int' and 'str'

In [122]:
np.int('65')


Out[122]:
65

In [6]:
SFhousing.Sale_Amount.iloc[1]


Out[6]:
'$1,160,000 '

In [5]:
SFhousing.Sale_Amount.str.replace('[$,]','').map(float)


Out[5]:
0      425500
1     1160000
2      774025
3      660000
4      450000
5      680000
6      820000
7      227000
8      476000
9      640000
10    1365000
11     470000
12     945000
13     475000
14     850000
...
1152    1105000
1153     920000
1154     650000
1155    1530000
1156    1810000
1157    1850000
1158    1140000
1159     879000
1160    1085000
1161     430000
1162     842930
1163     901000
1164     872000
1165    1800000
1166    1935000
Name: Sale_Amount, Length: 1167, dtype: float64

In [ ]:
def parse_dollars():
    


house = pd.read_csv('SFHousing.csv', parse_dates = 'Date_Sale', converters = {'Sale_Amount':parse_dollars})

In [130]:
house = pd.read_csv('SFHousing.csv', parse_dates = 'Date_Sale', converters = {'Sale_Amount':parse_dollars}, index_col='Date_Sale')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-130-93d5ec846ec7> in <module>()
----> 1 house = pd.read_csv('SFHousing.csv', parse_dates = 'Date_Sale', converters = {'Sale_Amount':parse_dollars}, index_col='Date_Sale')

NameError: name 'parse_dollars' is not defined

In [131]:
SFhousing['Sale_Amount'].resample('M', how = ['min', 'max', 'mean'])


---------------------------------------------------------------------------
DataError                                 Traceback (most recent call last)
<ipython-input-131-5c5790d7ad4a> in <module>()
----> 1 SFhousing['Sale_Amount'].resample('M', how = ['min', 'max', 'mean'])

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/generic.pyc in resample(self, rule, how, axis, fill_method, closed, label, convention, kind, loffset, limit, base)
    288                               fill_method=fill_method, convention=convention,
    289                               limit=limit, base=base)
--> 290         return sampler.resample(self)
    291 
    292     def first(self, offset):

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/tseries/resample.pyc in resample(self, obj)
     81 
     82         if isinstance(axis, DatetimeIndex):
---> 83             rs = self._resample_timestamps(obj)
     84         elif isinstance(axis, PeriodIndex):
     85             offset = to_offset(self.freq)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/tseries/resample.pyc in _resample_timestamps(self, obj)
    224             # Irregular data, have to use groupby
    225             grouped = obj.groupby(grouper, axis=self.axis)
--> 226             result = grouped.aggregate(self._agg_method)
    227 
    228             if self.fill_method is not None:

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in aggregate(self, func_or_funcs, *args, **kwargs)
   1411 
   1412         if hasattr(func_or_funcs, '__iter__'):
-> 1413             ret = self._aggregate_multiple_funcs(func_or_funcs)
   1414         else:
   1415             cyfunc = _intercept_cython(func_or_funcs)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in _aggregate_multiple_funcs(self, arg)
   1460                                          'found multiple named %s' % name)
   1461 
-> 1462             results[name] = self.aggregate(func)
   1463 
   1464         return DataFrame(results, columns=columns)

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in aggregate(self, func_or_funcs, *args, **kwargs)
   1408         """
   1409         if isinstance(func_or_funcs, basestring):
-> 1410             return getattr(self, func_or_funcs)(*args, **kwargs)
   1411 
   1412         if hasattr(func_or_funcs, '__iter__'):

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in mean(self)
    357         """
    358         try:
--> 359             return self._cython_agg_general('mean')
    360         except GroupByError:
    361             raise

/Users/Yigong/anaconda/python.app/Contents/lib/python2.7/site-packages/pandas/core/groupby.pyc in _cython_agg_general(self, how, numeric_only)
    462 
    463         if len(output) == 0:
--> 464             raise DataError('No numeric types to aggregate')
    465 
    466         return self._wrap_aggregated_output(output, names)

DataError: No numeric types to aggregate

In [132]:
fred.head()


Out[132]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 144.9819 6.64 7.55
1990-02-01 145.6932 6.92 7.70
1990-03-01 153.3082 7.36 7.85
1990-04-01 158.4586 7.24 7.84
1990-05-01 154.0441 6.70 7.76

In [133]:
fred.shift(3).head(10)


Out[133]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 NaN NaN NaN
1990-02-01 NaN NaN NaN
1990-03-01 NaN NaN NaN
1990-04-01 144.9819 6.64 7.55
1990-05-01 145.6932 6.92 7.70
1990-06-01 153.3082 7.36 7.85
1990-07-01 158.4586 7.24 7.84
1990-08-01 154.0441 6.70 7.76
1990-09-01 153.6957 7.06 7.63
1990-10-01 149.0395 7.48 7.52

In [134]:
fred_1diff = fred - fred.shift(1)

In [135]:
fred_1diff.head(10)


Out[135]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 NaN NaN NaN
1990-02-01 0.7113 0.28 0.15
1990-03-01 7.6150 0.44 0.15
1990-04-01 5.1504 -0.12 -0.01
1990-05-01 -4.4145 -0.54 -0.08
1990-06-01 -0.3484 0.36 -0.13
1990-07-01 -4.6562 0.42 -0.11
1990-08-01 -1.5786 0.71 -0.14
1990-09-01 -9.0204 0.43 -0.06
1990-10-01 -8.8496 -0.94 -0.16

In [136]:
fred_1diff.corr()


Out[136]:
EXJPUS INTGSBJPM193N TB6MS
EXJPUS 1.000000 0.114982 0.238944
INTGSBJPM193N 0.114982 1.000000 0.178863
TB6MS 0.238944 0.178863 1.000000

In [138]:
(fred-fred.shift(6)).corr()


Out[138]:
EXJPUS INTGSBJPM193N TB6MS
EXJPUS 1.000000 0.004250 0.091739
INTGSBJPM193N 0.004250 1.000000 0.326939
TB6MS 0.091739 0.326939 1.000000

In [147]:
def lag_corr(table, periods):
    return (table[periods:]-table.shift(periods)).corr()

result = [lag_corr(fred,i) for i in xrange(1,12)]
lags_one = pd.concat(result, keys = xrange(1,12))
lags_one


Out[147]:
EXJPUS INTGSBJPM193N TB6MS
1 EXJPUS 1.000000 0.114982 0.238944
INTGSBJPM193N 0.114982 1.000000 0.178863
TB6MS 0.238944 0.178863 1.000000
2 EXJPUS 1.000000 0.091502 0.229482
INTGSBJPM193N 0.091502 1.000000 0.250218
TB6MS 0.229482 0.250218 1.000000
3 EXJPUS 1.000000 0.045051 0.193890
INTGSBJPM193N 0.045051 1.000000 0.281884
TB6MS 0.193890 0.281884 1.000000
4 EXJPUS 1.000000 0.012804 0.162092
INTGSBJPM193N 0.012804 1.000000 0.303291
TB6MS 0.162092 0.303291 1.000000
5 EXJPUS 1.000000 0.005297 0.127369
INTGSBJPM193N 0.005297 1.000000 0.322181
TB6MS 0.127369 0.322181 1.000000
6 EXJPUS 1.000000 0.004250 0.091739
INTGSBJPM193N 0.004250 1.000000 0.326939
TB6MS 0.091739 0.326939 1.000000
7 EXJPUS 1.000000 -0.000657 0.063158
INTGSBJPM193N -0.000657 1.000000 0.320909
TB6MS 0.063158 0.320909 1.000000
8 EXJPUS 1.000000 -0.007450 0.042993
INTGSBJPM193N -0.007450 1.000000 0.320119
TB6MS 0.042993 0.320119 1.000000
9 EXJPUS 1.000000 -0.015944 0.032352
INTGSBJPM193N -0.015944 1.000000 0.323683
TB6MS 0.032352 0.323683 1.000000
10 EXJPUS 1.000000 -0.016366 0.027600
INTGSBJPM193N -0.016366 1.000000 0.327883
TB6MS 0.027600 0.327883 1.000000
11 EXJPUS 1.000000 -0.024651 0.026665
INTGSBJPM193N -0.024651 1.000000 0.329450
TB6MS 0.026665 0.329450 1.000000

In [146]:
lags_one.unstack(1)


Out[146]:
EXJPUS INTGSBJPM193N TB6MS
EXJPUS INTGSBJPM193N TB6MS EXJPUS INTGSBJPM193N TB6MS EXJPUS INTGSBJPM193N TB6MS
1 1 0.114982 0.238944 0.114982 1 0.178863 0.238944 0.178863 1
2 1 0.091502 0.229482 0.091502 1 0.250218 0.229482 0.250218 1
3 1 0.045051 0.193890 0.045051 1 0.281884 0.193890 0.281884 1
4 1 0.012804 0.162092 0.012804 1 0.303291 0.162092 0.303291 1
5 1 0.005297 0.127369 0.005297 1 0.322181 0.127369 0.322181 1
6 1 0.004250 0.091739 0.004250 1 0.326939 0.091739 0.326939 1
7 1 -0.000657 0.063158 -0.000657 1 0.320909 0.063158 0.320909 1
8 1 -0.007450 0.042993 -0.007450 1 0.320119 0.042993 0.320119 1
9 1 -0.015944 0.032352 -0.015944 1 0.323683 0.032352 0.323683 1
10 1 -0.016366 0.027600 -0.016366 1 0.327883 0.027600 0.327883 1
11 1 -0.024651 0.026665 -0.024651 1 0.329450 0.026665 0.329450 1

In [148]:
fred_1diff.EXJPUS.corr(fred_1diff.EXJPUS.shift(1))


Out[148]:
0.28489041350111521

In [149]:
fred_1diff.shift(1).head()


Out[149]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 NaN NaN NaN
1990-02-01 NaN NaN NaN
1990-03-01 0.7113 0.28 0.15
1990-04-01 7.6150 0.44 0.15
1990-05-01 5.1504 -0.12 -0.01

In [153]:
pd.DataFrame({'Lag1':fred_1diff.corrwith(fred_1diff.shift(1)),
 'Lag2':fred_1diff.corrwith(fred_1diff.shift(2))})


Out[153]:
Lag1 Lag2
EXJPUS 0.284890 0.058668
INTGSBJPM193N 0.153984 0.027434
TB6MS 0.511621 0.317941

In [ ]:
pd.DataFrame({'Lag%s' % i :fred_1diff.corrwith(fred_1diff.shift(1))})

Data arithmetic


In [158]:
fred.shift(-10,freq= 'H').head(10)


Out[158]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1989-12-31 14:00:00 144.9819 6.64 7.55
1990-01-31 14:00:00 145.6932 6.92 7.70
1990-02-28 14:00:00 153.3082 7.36 7.85
1990-03-31 14:00:00 158.4586 7.24 7.84
1990-04-30 14:00:00 154.0441 6.70 7.76
1990-05-31 14:00:00 153.6957 7.06 7.63
1990-06-30 14:00:00 149.0395 7.48 7.52
1990-07-31 14:00:00 147.4609 8.19 7.38
1990-08-31 14:00:00 138.4405 8.62 7.32
1990-09-30 14:00:00 129.5909 7.68 7.16

In [162]:
pfred = fred.to_period('M')

In [166]:
pfred.index[0].asfreq('M', 'end')


Out[166]:
Period('1990-01', 'M')

In [168]:
# 7th business day
(pfred.index[0].asfreq('B', 'start')+6).to_timestamp()


Out[168]:
Timestamp('1990-01-09 00:00:00', tz=None)

In [169]:
fred.head()


Out[169]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-01 144.9819 6.64 7.55
1990-02-01 145.6932 6.92 7.70
1990-03-01 153.3082 7.36 7.85
1990-04-01 158.4586 7.24 7.84
1990-05-01 154.0441 6.70 7.76

In [171]:
fred.shift(4, freq = 'D').resample('D', fill_method = 'ffill').head(50)


Out[171]:
EXJPUS INTGSBJPM193N TB6MS
DATE
1990-01-05 144.9819 6.64 7.55
1990-01-06 144.9819 6.64 7.55
1990-01-07 144.9819 6.64 7.55
1990-01-08 144.9819 6.64 7.55
1990-01-09 144.9819 6.64 7.55
1990-01-10 144.9819 6.64 7.55
1990-01-11 144.9819 6.64 7.55
1990-01-12 144.9819 6.64 7.55
1990-01-13 144.9819 6.64 7.55
1990-01-14 144.9819 6.64 7.55
1990-01-15 144.9819 6.64 7.55
1990-01-16 144.9819 6.64 7.55
1990-01-17 144.9819 6.64 7.55
1990-01-18 144.9819 6.64 7.55
1990-01-19 144.9819 6.64 7.55
1990-01-20 144.9819 6.64 7.55
1990-01-21 144.9819 6.64 7.55
1990-01-22 144.9819 6.64 7.55
1990-01-23 144.9819 6.64 7.55
1990-01-24 144.9819 6.64 7.55
1990-01-25 144.9819 6.64 7.55
1990-01-26 144.9819 6.64 7.55
1990-01-27 144.9819 6.64 7.55
1990-01-28 144.9819 6.64 7.55
1990-01-29 144.9819 6.64 7.55
1990-01-30 144.9819 6.64 7.55
1990-01-31 144.9819 6.64 7.55
1990-02-01 144.9819 6.64 7.55
1990-02-02 144.9819 6.64 7.55
1990-02-03 144.9819 6.64 7.55
1990-02-04 144.9819 6.64 7.55
1990-02-05 145.6932 6.92 7.70
1990-02-06 145.6932 6.92 7.70
1990-02-07 145.6932 6.92 7.70
1990-02-08 145.6932 6.92 7.70
1990-02-09 145.6932 6.92 7.70
1990-02-10 145.6932 6.92 7.70
1990-02-11 145.6932 6.92 7.70
1990-02-12 145.6932 6.92 7.70
1990-02-13 145.6932 6.92 7.70
1990-02-14 145.6932 6.92 7.70
1990-02-15 145.6932 6.92 7.70
1990-02-16 145.6932 6.92 7.70
1990-02-17 145.6932 6.92 7.70
1990-02-18 145.6932 6.92 7.70
1990-02-19 145.6932 6.92 7.70
1990-02-20 145.6932 6.92 7.70
1990-02-21 145.6932 6.92 7.70
1990-02-22 145.6932 6.92 7.70
1990-02-23 145.6932 6.92 7.70

In [172]:
fred.shift(4, freq = 'D').resample('D').apply(pd.Series.LinearInterpolation).head(50)


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-172-6a1a8676bed0> in <module>()
----> 1 fred.shift(4, freq = 'D').resample('D').apply(pd.Series.LinearInterpolation)

AttributeError: type object 'Series' has no attribute 'LinearInterpolation'

In [175]:
stamp = pd.Timestamp(datetime.now())

In [ ]:
stamp.tz_<tab>

In [180]:
stamp_pac = stamp.tz_localize('US/Pacific')

In [182]:
stamp_pac.tz_convert('Asia/Tokyo').tz_convert('utc')


Out[182]:
Timestamp('2013-10-17 22:24:37.144698+0000', tz='UTC')

In [ ]: