Installation
Installation from Anaconda
Installation on Linux
-- Test Your pandas Installation
nosetests pandas
-- Getting Started with pandas
import pandas as pd
import numpy as np
from pandas import *
-- Introduction to pandas Data Structures
-- The Series
Declaring a Series
s = pd.Series([12,-4,7,9])
s
s = pd.Series([12,-4,7,9], index=[íaí,íbí,ící,ídí])
s
s.values
s.index
Selecting the Internal Elements
s[2]
s['b']
s[['b', 'c']]
Assigning Values to the Elements
s[1] = 0
s
s['b'] = 1
s
Defining Series from NumPy Arrays and Other Series
arr = np.array([1,2,3,4])
s3 = pd.Series(arr)
s3
s4 = pd.Series(s)
s4
s3
arr[2] = -2
s3
Filtering Values
s[s > 8]
Operations and Mathematical Functions
s/2
np.logs(s)
Evaluating Values
serd = pd.Series([1,0,2,1,2,3], index=[íwhiteí,íwhiteí,íblueí,ígreení,ígreení,íyellowí])
serd
serd.unique()
serd.value_counts()
serd.isin([0,3])
NaN Values
s2 = pd.Series([5,-3,np.NaN,14])
s2
s2.isnull(?)
s2[s2.notnull(?)]
Series as Dictionaries
mydict = {íredí: 2000, íblueí: 1000, íyellowí: 500, íorangeí: 1000}
myseries = pd.Series(mydict)
colors = [íredí,íyellowí,íorangeí,íblueí,ígreení]
myseries = pd.Series(mydict, index=colors)
Operations between Series
mydict2 = {íredí:400,íyellowí:1000,íblackí:700}
myseries2 = pd.Series(mydict2)
myseries + myseries2
-- The DataFrame
Defining a DataFrame
data = {ícolorí : [íblueí,ígreení,íyellowí,íredí,íwhiteí],
íobjectí : [íballí,ípení,ípencilí,ípaperí,ímugí],
ípriceí : [1.2,1.0,0.6,0.9,1.7]}
frame = pd.DataFrame(data)
frame
frame2 = pd.DataFrame(data, columns=[íobjectí,ípriceí])
frame2
frame2 = pd.DataFrame(data, index=[íoneí,ítwoí,íthreeí,ífourí,ífiveí])
frame2
frame3 = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame3
Selecting Elements
frame.columns
frame.index
frame.values
frame['price']
frame.ix[2]
frame.ix[[2,4]]
frame[0:1]
frame[1:3]
frame['object'][3]
Assigning Values
frame.index.name = íidí; frame.columns.name = íitemí
frame
frame[ínewí] = 12
frame
frame[ínewí] = [3.0,1.3,2.2,0.8,1.1]
frame
ser = pd.Series(np.arange(5))
ser
frame[ípriceí][2] = 3.3
Membership of a Value
frame.isin([1.0,ípení])
frame[frame.isin([1.0,ípení])]
Deleting a Column
del frame[ínewí]
frame
Filtering
frame[frame < 12]
DataFrame from Nested dict
nestdict = { íredí: { 2012: 22, 2013: 33 },
íwhiteí: { 2011: 13, 2012: 22; 2013: 16},
íblueí: {2011: 17, 2012: 27; 2013: 18}}
frame2 = pd.DataFrame(nestdict)
frame2
Transposition of a DataFrame
frame2.T
-- The Index Objects
ser = pd.Series([5,0,3,8,4], index=[íredí,íblueí,íyellowí,íwhiteí,ígreení])
ser.index
Methods on Index
ser.idxmin()
ser.idxmax()
Index with Duplicate Labels
serd = pd.Series(range(6), index=[íwhiteí,íwhiteí,íblueí,ígreení,ígreení,íyellowí])
serd
serd['white']
serd.index.is_unique
frame.index.is_unique
-- Other Functionalities on Indexes
ser = pd.Series([2,5,7,4], index=[íoneí,ítwoí,íthreeí,ífourí])
ser
ser.reindex([íthreeí,ífourí,ífiveí,íoneí])
ser3 = pd.Series([1,5,6,3],index=[0,3,5,6])
ser3
ser3.reindex(range(6),method=íffillí)
ser3.reindex(range(6),method=íbfillí)
frame.reindex(range(5), method=íffillí,columns=[ícolorsí,ípriceí,ínewí,íobjectí])
-- Dropping
drop()
ser = Series(np.arange(4.), index=[íredí,íblueí,íyellowí,íwhiteí])
ser
ser.drop(íyellowí)
ser.drop([íblueí,íwhiteí])
frame = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame
frame.drop([íblueí,íyellowí])
frame.drop([ípení,ípencilí],axis=1)
-- Arithmetic and Data Alignment
s1 = pd.Series([3,2,5,1],[íwhiteí,íyellowí,ígreení,íblueí])
s2 = pd.Series([1,4,7,2,1],[íwhiteí,íyellowí,íblackí,íblueí,íbrowní])
s1+s2
frame1 = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame2 = pd.DataFrame(np.arange(12).reshape((4,3)),
index=[íblueí,ígreení,íwhiteí,íyellowí],
columns=[ímugí,ípení,íballí])
frame1
frame2
frame1+frame2
-- Operations between Data Structures
Flexible Arithmetic Methods
frame1.add(frame2)
-- Operations between DataFrame and Series
frame = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame
frame - ser
ser[ímugí] = 9
ser
frame - ser
-- Function Application and Mapping
Functions by Element
frame = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame
np.sqrt(frame)
-- Functions by Row or Column
f = lambda x: x.max() - x.min()
def f(x):
return x.max() - x.min()
frame.apply(f)
frame.apply(f, axis=1)
def f(x):
return pd.Series([x.min(), x.max()], index=[íminí,ímaxí])
frame.apply(f)
-- Statistics Functions
frame.sum()
frame.mean()
frame.describe()
-- Sorting and Ranking
ser = pd.Series([5,0,3,8,4], index=[íredí,íblueí,íyellowí,íwhiteí,ígreení])
ser
ser.sort_index(ascending=False)
frame = pd.DataFrame(np.arange(16).reshape((4,4)),
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame
ser.order()
frame.sort_index(by='pen')
frame.sort_index(by='pen', 'pencil'])
ser.rank()
ser.rank(method='first')
ser.rank(ascending=False)
-- Correlation and COvariance
seq2 = pd.Series([3,4,3,4,5,4,3,2],[í2006í,í2007í,í2008í,í2009í,í2010í,í2011í,í2012í,í2013í])
seq = pd.Series([1,2,3,4,4,3,2,1],[í2006í,í2007í,í2008í,í2009í,í2010í,í2011í,í2012í,í2013í])
seq.corr(seq2)
frame2 = DataFrame([[1,4,3,6],[4,5,6,1],[3,3,1,5],[4,1,6,4]],
index=[íredí,íblueí,íyellowí,íwhiteí],
columns=[íballí,ípení,ípencilí,ípaperí])
frame2
frame2.corr()
frame2.cov()
frame2.corrwith(ser)
frame2.corrwith(frame)
-- ìNot a Numberî Data
Assigning a NaN Value
ser = pd.Series([0,1,2,np.NaN,9], index=[íredí,íblueí,íyellowí,íwhiteí,ígreení])
ser
ser[íwhiteí] = None
ser
Filtering Out NaN Values
ser.dropna()
ser[ser.notnull()]
frame3 = pd.DataFrame([[6,np.nan,6],[np.nan,np.nan,np.nan],[2,np.nan,5]],
index = [íblueí,ígreení,íredí],
columns = [íballí,ímugí,ípení])
frame3
frame3.dropna(how=íallí)
-- Filling in NaN Occurrences
frame3.fillna(0)
frame3.fillna({íballí:1,ímugí:0,ípení:99})
-- Hierarchical Indexing and Leveling
mser = pd.Series(np.random.rand(8),
index=[[íwhiteí,íwhiteí,íwhiteí,íblueí,íblueí,íredí,íredí,íredí],
[íupí,ídowní,írightí,íupí,ídowní,íupí,ídowní,íleftí]])
mser
mser.index
mser[íwhiteí]
mser[:,íupí]
mser[íwhiteí,íupí]
mser.unstack()
frame
frame.stack()
mframe = pd.DataFrame(np.random.randn(16).reshape(4,4),
index=[[íwhiteí,íwhiteí,íredí,íredí], [íupí,ídowní,íupí,ídowní]],
columns=[[ípení,ípení,ípaperí,ípaperí],[1,2,1,2]])
mframe
-- Reordering and Sorting Levels
mframe.columns.names = [íobjectsí,íidí]
mframe.index.names = [ícolorsí,ístatusí]
mframe
mframe.swaplevel('colors', 'status')
mframe.sortlevel(ícolorsí)
-- Summary Statistic by Level
mframe.sum(level=ícolorsí)
mframe.sum(level=íidí, axis=1)
No comments:
Post a Comment