In [5]:
%matplotlib inline
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
In [2]:
obj = Series([4,7,-5,3])
In [3]:
obj
Out[3]:
In [8]:
type(obj.values)
Out[8]:
In [9]:
obj2 = Series([4,7,-5,3], index=['d','b','a','c'])
In [10]:
obj2
Out[10]:
In [11]:
obj2.index
Out[11]:
In [12]:
# DataFrame
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 [13]:
frame
Out[13]:
In [16]:
frame2 = DataFrame(data, columns=['year','state','pop','debt'], index=['one','two','three','four','five'])
In [17]:
frame2
Out[17]:
In [20]:
frame2['state']
Out[20]:
In [23]:
frame2.ix['three']
Out[23]:
In [25]:
frame2.T['three'].T
Out[25]:
In [40]:
frame2['debt']=16.5
In [41]:
frame2
Out[41]:
In [49]:
val = Series([20],index=['three'])
frame2['debt']=val
frame2
Out[49]:
In [55]:
# Copy Series from frame, modify and set back
# There's probably a better way to do this but I keep getting the copy of slice warning...
val = frame2['debt'].copy()
val[np.isnan(val.values)] = 16.5
frame2['debt'] = val
In [56]:
frame2
Out[56]:
In [65]:
f = lambda x: Series([x.min(),x.max()], index=['min','max'])
frame2.apply(f)
Out[65]:
In [72]:
frame2.ix[1]
Out[72]:
In [ ]: