Pandas基础
2018-11-17 本文已影响10人
奉先
pandas是python中最常用的模块,包含自己的数据结构,经常和numpy,scipy,matplotlib组合使用。pandas和numpy的最大区别在于,pandas用来处理表格型或者异质型数据结构,而Numpy处理的多维数组中的元素都是同质型的。行业标准导入方式是: import pandas as pd。
1. pandas数据结构
pandas最重要的数据结构是Series和DataFrame。
1.1 Series
可以理解Series是有序的,并且长度固定的字典。如果只赋给Series一个数组,会默认生成0,1,...,N-1的索引。可以通过Series的index和values属性获取序列,和值(对应于字典中的key和value)。
import pandas as pd
obj = pd.Series([6,5,7,-12,0])
print(obj)
print(obj.index)
print(obj.values)
在创建Series时,可以指定index,从而代替默认的从0开始的序列。在访问时,可以类似于字典的访问obj[key]来获取value,也可以用一个序列的列表来一次获取多个value(一定注意第一个[]是固定访问格式,里边的列表还需要带一个[])。可以通过布尔值数组来过滤Series,并且可以对值进行任意的标量运算。
obj2=pd.Series([6,5,7,-12,0],index=['d','n','r','s','a'])
print(obj2)
print(obj2[['a','r','s']]) # 需要用一个列表作为参数来访问多个值
print(obj2[obj2>0]) # 通过布尔值数组来过滤Series
print(obj2*2) # 对值进行任意的标量运算
因为Series和Python字典构造类似,也可以直接通过字典来创建。如果不想使用排序的字典键,需要自行传入参数列表。如果传入的序列key不在字典的key中,则会显示NaN值(Pandas中标记缺失值或者NA值的方式)。可以使用isnull和notnull函数来检查缺失值。Series对象自身和Series的Index都有name属性,并且可以赋值。可以给某个key来赋值。
dicdata = {'Windows':7500 , 'Mi': 4900 , 'Lenovo' : 5200, 'Apple':13500}
obj3 = pd.Series(dicdata)
print(obj3)
indexdata = ['ASUS','Apple','Mi','Windows']
obj4 = pd.Series(dicdata,index=indexdata)
print(obj4)
print(pd.isnull(obj4)) # 或者使用obj4.isnull()
print(pd.notnull(obj4)) # 或者使用obj4.notnull()
print(obj3+obj4)
obj4.name = 'shangpinjiage' # 设置Series的name属性
obj4.index.name = 'brand' # 设置Series.index的name属性
obj4['Apple'] = 27500 # 给key赋值
print(obj4)
print("Series Name: " + obj4.name + " Series Index Name: " + obj4.index.name)