In [19]:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame

In [2]:
obj = Series([4, 7, -5, 3])

In [3]:
obj


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

In [4]:
obj.values


Out[4]:
array([ 4,  7, -5,  3])

In [5]:
obj.index


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

In [6]:
obj2 = Series([4, 7, -5, 3], index=["d", "b", "a", "c"])

In [7]:
obj2


Out[7]:
d    4
b    7
a   -5
c    3
dtype: int64

In [8]:
obj2.index


Out[8]:
Index([u'd', u'b', u'a', u'c'], dtype='object')

In [9]:
obj2["a"]


Out[9]:
-5

In [10]:
obj[2]


Out[10]:
-5

In [11]:
obj2["d"] = 6

In [12]:
obj2


Out[12]:
d    6
b    7
a   -5
c    3
dtype: int64

In [14]:
obj2[["c", "a", "d"]]


Out[14]:
c    3
a   -5
d    6
dtype: int64

In [15]:
obj2


Out[15]:
d    6
b    7
a   -5
c    3
dtype: int64

In [16]:
obj2[obj2 > 0]


Out[16]:
d    6
b    7
c    3
dtype: int64

In [17]:
obj2 * 2


Out[17]:
d    12
b    14
a   -10
c     6
dtype: int64

In [20]:
np.exp(obj2)


Out[20]:
d     403.428793
b    1096.633158
a       0.006738
c      20.085537
dtype: float64

In [21]:
"b" in obj2


Out[21]:
True

In [22]:
"e" in obj2


Out[22]:
False

In [23]:
sdata = {"Ohio": 35000, "Texas": 71000, "Oregon": 16000, "Utah": 5000}

In [24]:
obj3 = Series(sdata)

In [25]:
obj3


Out[25]:
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64

In [26]:
states = ["California", "Ohio", "Oregon", "Texas"]

In [27]:
obj4 = Series(sdata, index=states)

In [28]:
obj4


Out[28]:
California      NaN
Ohio          35000
Oregon        16000
Texas         71000
dtype: float64

In [29]:
pd.isnull(obj4)


Out[29]:
California     True
Ohio          False
Oregon        False
Texas         False
dtype: bool

In [30]:
pd.notnull(obj4)


Out[30]:
California    False
Ohio           True
Oregon         True
Texas          True
dtype: bool

In [31]:
obj4.isnull()


Out[31]:
California     True
Ohio          False
Oregon        False
Texas         False
dtype: bool

In [32]:
obj3


Out[32]:
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64

In [33]:
obj4


Out[33]:
California      NaN
Ohio          35000
Oregon        16000
Texas         71000
dtype: float64

In [37]:
obj3 + obj4


Out[37]:
California       NaN
Ohio           70000
Oregon         32000
Texas         142000
Utah             NaN
dtype: float64

In [40]:
obj4.name = "population"

In [41]:
obj4.index.name = "state"

In [42]:
obj4


Out[42]:
state
California      NaN
Ohio          35000
Oregon        16000
Texas         71000
Name: population, dtype: float64

In [43]:
obj.index = ["Bob", "Steve", "Jeff", "Ryan"]

In [44]:
obj


Out[44]:
Bob      4
Steve    7
Jeff    -5
Ryan     3
dtype: int64

In [45]:
data = {"state": ["Ohio", "Ohio", "Ohio", "Nevada", "Nevada"],
        "year": [2000, 2001, 2002, 2001, 2002],
        "pop": [1.5, 1.7, 3.6, 2.4, 2.9]}
frame = DataFrame(data)

In [46]:
frame


Out[46]:
pop state year
0 1.5 Ohio 2000
1 1.7 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002

5 rows × 3 columns


In [47]:
DataFrame(data, columns=["year", "state", "pop"])


Out[47]:
year state pop
0 2000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9

5 rows × 3 columns


In [48]:
frame2 = DataFrame(data, columns=["year", "state", "pop", "debt"],
                   index=["one", "two", "three", "four", "five"])

In [49]:
frame2


Out[49]:
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 NaN
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 NaN
five 2002 Nevada 2.9 NaN

5 rows × 4 columns


In [50]:
frame2.columns


Out[50]:
Index([u'year', u'state', u'pop', u'debt'], dtype='object')

In [51]:
frame2["state"]


Out[51]:
one        Ohio
two        Ohio
three      Ohio
four     Nevada
five     Nevada
Name: state, dtype: object

In [53]:
frame2.year


Out[53]:
one      2000
two      2001
three    2002
four     2001
five     2002
Name: year, dtype: int64

In [54]:
frame2.ix["three"]


Out[54]:
year     2002
state    Ohio
pop       3.6
debt      NaN
Name: three, dtype: object

In [56]:
frame2["debt"] = 16.5

In [57]:
frame2


Out[57]:
year state pop debt
one 2000 Ohio 1.5 16.5
two 2001 Ohio 1.7 16.5
three 2002 Ohio 3.6 16.5
four 2001 Nevada 2.4 16.5
five 2002 Nevada 2.9 16.5

5 rows × 4 columns


In [58]:
frame2.debt = np.arange(5.)

In [59]:
frame2


Out[59]:
year state pop debt
one 2000 Ohio 1.5 0
two 2001 Ohio 1.7 1
three 2002 Ohio 3.6 2
four 2001 Nevada 2.4 3
five 2002 Nevada 2.9 4

5 rows × 4 columns


In [60]:
val = Series([-1.2, -1.5, -1.7], index=["two", "four", "five"])

In [66]:
frame2["debt"] = val

In [67]:
frame2


Out[67]:
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 -1.2
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 -1.5
five 2002 Nevada 2.9 -1.7

5 rows × 4 columns


In [68]:
frame2["eastern"] = frame2.state == "Ohio"

In [69]:
frame2


Out[69]:
year state pop debt eastern
one 2000 Ohio 1.5 NaN True
two 2001 Ohio 1.7 -1.2 True
three 2002 Ohio 3.6 NaN True
four 2001 Nevada 2.4 -1.5 False
five 2002 Nevada 2.9 -1.7 False

5 rows × 5 columns


In [70]:
del frame2["eastern"]

In [71]:
frame2.columns


Out[71]:
Index([u'year', u'state', u'pop', u'debt'], dtype='object')

In [72]:
pop = {"Nevada": {2001: 2.4, 2002: 2.9},
       "Ohio": {2000: 1.5, 2001: 1.7, 2002: 3.6}}

In [73]:
frame3 = DataFrame(pop)

In [75]:
frame3


Out[75]:
Nevada Ohio
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6

3 rows × 2 columns


In [78]:
frame3.T


Out[78]:
2000 2001 2002
Nevada NaN 2.4 2.9
Ohio 1.5 1.7 3.6

2 rows × 3 columns


In [79]:
DataFrame(pop, index=[2001, 2002, 2003])


Out[79]:
Nevada Ohio
2001 2.4 1.7
2002 2.9 3.6
2003 NaN NaN

3 rows × 2 columns


In [80]:
pdata = {"Ohio": frame3["Ohio"][:-1],
         "Nevada": frame3["Nevada"][:2]}

In [82]:
DataFrame(pdata)


Out[82]:
Nevada Ohio
2000 NaN 1.5
2001 2.4 1.7

2 rows × 2 columns


In [83]:
frame3.index.name = "year"
frame3.columns.name = "state"

In [84]:
frame3


Out[84]:
state Nevada Ohio
year
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6

3 rows × 2 columns


In [85]:
frame3.values


Out[85]:
array([[ nan,  1.5],
       [ 2.4,  1.7],
       [ 2.9,  3.6]])

In [86]:
frame2.values


Out[86]:
array([[2000, 'Ohio', 1.5, nan],
       [2001, 'Ohio', 1.7, -1.2],
       [2002, 'Ohio', 3.6, nan],
       [2001, 'Nevada', 2.4, -1.5],
       [2002, 'Nevada', 2.9, -1.7]], dtype=object)

In [87]:
obj = Series(range(3), index=["a", "b", "c"])

In [88]:
index = obj.index

In [89]:
index


Out[89]:
Index([u'a', u'b', u'c'], dtype='object')

In [90]:
index[1:]


Out[90]:
Index([u'b', u'c'], dtype='object')

In [91]:
index[1] = "d"


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-91-092906bbf8a9> in <module>()
----> 1 index[1] = "d"

/Users/jlhudd/anaconda/lib/python2.7/site-packages/pandas/core/base.pyc in _disabled(self, *args, **kwargs)
    178         """This method will not function because object is immutable."""
    179         raise TypeError("'%s' does not support mutable operations." %
--> 180                         self.__class__)
    181 
    182     __setitem__ = __setslice__ = __delitem__ = __delslice__ = _disabled

TypeError: '<class 'pandas.core.index.Index'>' does not support mutable operations.

In [92]:
index = pd.Index(np.arange(3))

In [93]:
index


Out[93]:
Int64Index([0, 1, 2], dtype='int64')

In [94]:
obj2 = Series([1.5, -2.5, 0], index=index)

In [95]:
obj2


Out[95]:
0    1.5
1   -2.5
2    0.0
dtype: float64

In [96]:
obj2.index is index


Out[96]:
True

In [97]:
frame3


Out[97]:
state Nevada Ohio
year
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6

3 rows × 2 columns


In [98]:
"Ohio" in frame3.columns


Out[98]:
True

In [99]:
2003 in frame3.index


Out[99]:
False

In [107]:
obj = Series([4.5, 7.2, -5.3, 3.6], index=["d", "b", "a", "c"])

In [108]:
obj


Out[108]:
d    4.5
b    7.2
a   -5.3
c    3.6
dtype: float64

In [109]:
obj2 = obj.reindex(["a", "b", "c", "d", "e"])

In [110]:
obj2


Out[110]:
a   -5.3
b    7.2
c    3.6
d    4.5
e    NaN
dtype: float64

In [111]:
obj.reindex(["a", "b", "c", "d", "e"], fill_value=0)


Out[111]:
a   -5.3
b    7.2
c    3.6
d    4.5
e    0.0
dtype: float64

In [112]:
obj3 = Series(["blue", "purple", "yellow"], index=[0, 2, 4])

In [113]:
obj3.reindex(range(6), method="ffill")


Out[113]:
0      blue
1      blue
2    purple
3    purple
4    yellow
5    yellow
dtype: object

In [114]:
frame = DataFrame(np.arange(9).reshape((3, 3)), index=["a", "c", "d"], columns=["Ohio", "Texas", "California"])

In [115]:
frame


Out[115]:
Ohio Texas California
a 0 1 2
c 3 4 5
d 6 7 8

3 rows × 3 columns


In [116]:
frame2 = frame.reindex(["a", "b", "c", "d"])

In [117]:
frame2


Out[117]:
Ohio Texas California
a 0 1 2
b NaN NaN NaN
c 3 4 5
d 6 7 8

4 rows × 3 columns


In [118]:
states = ["Texas", "Utah", "California"]

In [119]:
frame.reindex(columns=states)


Out[119]:
Texas Utah California
a 1 NaN 2
c 4 NaN 5
d 7 NaN 8

3 rows × 3 columns


In [120]:
frame.reindex(index=["a", "b", "c", "d"], method="ffill", columns=states)


Out[120]:
Texas Utah California
a 1 NaN 2
b 1 NaN 2
c 4 NaN 5
d 7 NaN 8

4 rows × 3 columns


In [121]:
frame.ix[["a", "b", "c", "d"], states]


Out[121]:
Texas Utah California
a 1 NaN 2
b NaN NaN NaN
c 4 NaN 5
d 7 NaN 8

4 rows × 3 columns


In [ ]: