科学计算库Pandas用法
介绍
以Numpy为基础,借力Numpy模块在计算方面性能高的优势,基于matplotlib,能够简便的画图,独特的数据结构。
- 增强图表可读性
- 便捷的数据处理能力
- 读取文件方便
- 封装了Matplotlib、Numpy的画图和计算
数据结构
Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex(老版本中叫Panel )。
Series是一维数据结构,DataFrame是二维的表格型数据结构,MultiIndex是三维的数据结构。
Series
能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。
import pandas as pd
import numpy as np
pd.Series(np.arange(6)+4)
#指定索引
pd.Series(np.arange(4),index=["a","b","c","d"])
# 通过字典数据创建
color = pd.Series({
'red':100, 'blue':200, 'green': 500, 'yellow':1000})
color
color.index
color.values
color['blue']
DataFrame
np.random.randn(2,3)
pd.DataFrame(np.random.randn(2,3))
# 准备数据
score=np.random.randint(40,100,(10,5))
# 创建列索引
subjects=['chinese','math','english','police','sports']
# 创建行索引
stus=['student_{}'.format(i) for i in range(10)]
score_data=pd.DataFrame(score,index=stus,columns=subjects)
score_data
score_data.shape #二维
score_data.index
score_data.columns
score_data.T #转置
score_data.head() #默认前5lines
score_data.tail(a) #尾部a行
score_data.info() #数据情况描述
score_data.values #直接获取其中array的值
DatatFrame索引的设置
score_data.index
score_data.index[4] #可以访问,但不可以修改--score_data.index[4]="name4" 报错,不可以这样修改
#整体修改
stu=['name_'+str(i) for i in range(score_data.shape[0])]
score_data.index=stu
score_data
# rename实现单个修改
score_data=score_data.rename(index={
'name_1':'new_1'},columns={
'police':'政治'})
score_data
重设索引
score_data.reset_index() #不删除原来索引,添加一列索引
score_data.reset_index(drop=True) #删除并重置索引
将某列值设为新的索引
data=pd.DataFrame({
'month': [1, 4, 7, 10],
'year': [2012, 2014, 2013, 2014],
'sale':[55, 40, 84, 31]})
data
data.set_index('month')
data.set_index(["year","month"]).index #Multiindex
set_index(keys, drop=True)
keys : 列索引名成或者列索引名称的列表
drop : boolean, default True.当做新的索引,删除原来的列
MultiIndex
MultiIndex是三维的数据结构;
多级索引(也称层次化索引),可以在Series、DataFrame对象上拥有2个以及2个以上的索引。
data2=data.set_index(["year","month"])
data2.index
data2
data2.index.names #levels的名称
data2.index.levels #每个level的元组值
小结: