pandas 主要介绍了dataframe 和 series 对象和他们的用法
# -*- coding: utf-8 -*-
from pandas import Series
print '用数组生成Series'
obj = Series([4, 7, -5, 3])
print obj
print obj.values
print obj.index
print
print '指定Series的index'
obj2 = Series([4, 7, -5, 3], index = ['d', 'b', 'a', 'c'])
print obj2
print obj2.index
print obj2['a']
obj2['d'] = 6
print obj2[['c', 'a', 'd']]
print obj2[obj2 > 0] # 找出大于0的元素
print 'b' in obj2 # 判断索引是否存在
print 'e' in obj2
print
print '使用字典生成Series'
sdata = {'Ohio':45000, 'Texas':71000, 'Oregon':16000, 'Utah':5000}
obj3 = Series(sdata)
print obj3
print
print '使用字典生成Series,并额外指定index,不匹配部分为NaN。'
states = ['California', 'Ohio', 'Oregon', 'Texas']
obj4 = Series(sdata, index = states)
print obj4
print
print 'Series相加,相同索引部分相加。'
print obj3 + obj4
print
print '指定Series及其索引的名字'
obj4.name = 'population'
obj4.index.name = 'state'
print obj4
print
print '替换index'
obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan']
print obj
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import sys
from pandas import Series, DataFrame, Index
print '获取index'
obj = Series(range(3), index = ['a', 'b', 'c'])
index = obj.index
print index[1:]
try:
index[1] = 'd' # index对象read only
except:
print sys.exc_info()[0]
print
print '使用Index对象'
index = Index(np.arange(3))
obj2 = Series([1.5, -2.5, 0], index = index)
print obj2
print obj2.index is index
print
print '判断列和索引是否存在'
pop = {'Nevada':{20001:2.4, 2002:2.9},
'Ohio':{2000:1.5, 2001:1.7, 2002:3.6}}
frame3 = DataFrame(pop)
print 'Ohio' in frame3.columns
print '2003' in frame3.index
# -*- coding: utf-8 -*-
import numpy as np
from pandas import Series, DataFrame
print '用字典生成DataFrame,key为列的名字。'
data = {'state':['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
'year':[2000, 2001, 2002, 2001, 2002],
'pop':[1.5, 1.7, 3.6, 2.4, 2.9]}
print DataFrame(data)
print DataFrame(data, columns = ['year', 'state', 'pop']) # 指定列顺序
print
print '指定索引,在列中指定不存在的列,默认数据用NaN。'
frame2 = DataFrame(data,
columns = ['year', 'state', 'pop', 'debt'],
index = ['one', 'two', 'three', 'four', 'five'])
print frame2
print frame2['state']
print frame2.year
print frame2.ix['three']
frame2['debt'] = 16.5 # 修改一整列
print frame2
frame2.debt = np.arange(5) # 用numpy数组修改元素
print frame2
print
print '用Series指定要修改的索引及其对应的值,没有指定的默认数据用NaN。'
val = Series([-1.2, -1.5, -1.7], index = ['two', 'four', 'five'])
frame2['debt'] = val
print frame2
print
print '赋值给新列'
frame2['eastern'] = (frame2.state == 'Ohio') # 如果state等于Ohio为True
print frame2
print frame2.columns
print
print 'DataFrame转置'
pop = {'Nevada':{2001:2.4, 2002:2.9},
'Ohio':{2000:1.5, 2001:1.7, 2002:3.6}}
frame3 = DataFrame(pop)
print frame3
print frame3.T
print
print '指定索引顺序,以及使用切片初始化数据。'
print DataFrame(pop, index = [2001, 2002, 2003])
pdata = {'Ohio':frame3['Ohio'][:-1], 'Nevada':frame3['Nevada'][:2]}
print DataFrame(pdata)
print
print '指定索引和列的名称'
frame3.index.name = 'year'
frame3.columns.name = 'state'
print frame3
print frame3.values
print frame2.values