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))})
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 [ ]: