Python数据分析常见库介绍之Pandas
Pandas是Python的一个数据分析包,它名称来源于面板数据(Panel Data)和Python数据分析(Data Analysis),可以说它是Python下最强大的数据分析与探索工具。Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具,使得在Python处理数据变得非常简单和快速。和Scipy一样,Pandas也是构建在Numpy之上。因此,Pandas在安装好Numpy后就可以安装。注意:默认的Pandas还不能读写Excel文件,需要安装xlrd(读)库和xlwt(写)库才能支持Excel的读写。
数据结构
Pandas基本的数据结构是Series和DataFrame。Series就是序列,类似于一维数组,而DataFrame则类似于二维数组,它的每一列都是一个Series。
Series
为了定位Series中的元素,Pandas提供了index对象,每个Series都会带有一个对应的index,用来标记不同的元素,index不一定是数字,也可能是字母等。
import pandas as pd #通常用pd作为pandas的别名。
import numpy as np
s =pd.Series([1,2,3], index=['a', 'b', 'c']) #创建一个序列s
s.describe()#数据基本统计量
print(s[0])
print(s['a'])
#输出结果都为1Dataframe
DataFrame是表格型数据结构,包含一组有序的列,每列可以是不同的类型。DataFrame有行索引和列索引,可以看成由Series组成的字典。
dates=pd.date_range('20180624',periods=100)
df=pd.DataFrame(np.random.randn(100,4),index=dates,columns=['A','B','C','D'])#生成100行4列位置
print(df)#输出100行4列的表格
#查看 DataFrame 的数据类型
df.dtypes
#预览 DataFrame 的前 5 行数据
df.head() # 默认为显示 5 行,可根据需要在括号中填入希望预览的行数
#查看 DataFrame 的后 3 行数据
df.tail(3)
#查看 DataFrame 的统计数据
df.describe()
#对 DataFrame 通过标签查询(单列)
df['A']
df.A # 等价于 df2['age']
#对 DataFrame 通过标签查询(多列)
df[['A','B']]
DataFrame也可以通过特定的方式创建,同Spark SQL中的DataFrame一样,其概念来自于R语言,因此,对DataFrame的操作类似于SQL语句。
Series和DataFrame都可以执行一些数学计算操作,比如sum(),min()等。
读取数据
我们从csv或者Excel文件中读取到了数据,并将他们存入了dataframe中。我们只需要调用read_csv函数或者read_excel函数并将文件的路径作为函数参数即可。header关键字告诉Pandas这些数据是否有列名。如果没有列名,你可以将其置为None。Pandas非常智能,所以你可以省略这一关键字。
#读取文件,注意文件的存储路径不能带有中文,否则读取可能出错。
pd.read_excel('data.xls') #读取Excel文件,创建DataFrame。
pd.read_csv('data.csv', encoding = 'utf-8') #读取文本格式的数据,一般用encoding指定编码。缺失值处理
Pandas用numpy.nan表示缺失值,不参与计算。
判断何处缺失:
pd.isnull(df) #判断位置元素是否为缺失值
df.isnull()去掉缺失行:
df.dropna(how='any')填充缺失行:
df.fillna(value='1')#用1填充所有缺失的数据Pandas的功能十分强大,要想详细介绍它的工具,写一本书都能难以描述完。鉴于在之后的文章推送中会频繁使用Pandas,因此,这里就不进行详细的介绍,如果你有什么疑惑,建议参考《利用Python进行数据分析》一书。
除了进行数据处理之外,Pandas也可以进行数据可视化,比如:
折线图:
df= df.cumsum()
df.plot但其实,在Python里面,有更适合进行绘图的库,那就是Matplotlib,在下一次的推送中,我们将进行较为详细的介绍。