Python科学计算:Pandas
Pandas提供的数据结构DataFrame与json的锲合度很高,转换很方便
Series和DataFrame两个核心数据结构,分别代表一维的序列和二维的表结构,基于这两个数据结构,Pandas可以对数据进行导入等等
数据结构:Series 和 DataFrame
Series是个定长的字典序列,在存储的时候,相当于两个ndarray,这也是和字典结构最大的不同,因为在字典的结构里,元素的个数是不固定的
有两个基本属性,index 和 values,在series结构中,index默认是0,1,2,……递增的整数序列,也可以指定索引,比如index = [‘a’, ‘b’ , ‘c’]
import pandas as pd
from pandas import Series , DataFrame
x1 = Series([1,2,3,4])
x1 = Series(data = [1,2,3,4], index = ['a' , ' b' , 'c' , 'd'])
print x1
print x2
0 1
1 2
2 3
3 4
dtype:int64
a 1
b 2
c 3
d 4
dtype:int64
x1中的index是默认值,x2的index进行了指定,前面是data (values),后面是index
或者可以用字典的方式来创建series:
d = {'a' :1,'b':2,'c':3,'d':4}
x3 = Series(d)
print x3
DataFrame 类型数据结构类似数据库表
包括行索引和列索引,可以将DataFrame看成是由相同索引的Series组成的字典类型
想输出几个同学的考试成绩:
import pandas as pd
from pandas import Series,DataFrame
data = {'Chineses' :[66,96,93,90,80],'English':[75,65,85,88,90],'Math':[30,98,66,77,90]}
df1 = DataFrame(data)
df2 = DataFrame(data,index = ['Zhangfei','Guanyu','Zhaoyun','Huangzhong','Dianwei'],columns=['English','Math','Chineses'])
print df1
print df2
df2的列索引是[‘English’,‘Math’,‘Chineses’],行索引是 [‘Zhangfei’,‘Guanyu’,‘Zhaoyun’,‘Huangzhong’,‘Dianwei’],所以df2的输出是:
English Math Chineses
Zhangfei 75 30 66
Guanyu 65 98 96
Zhaoyun 85 66 93
Huangzhong 88 77