一、是什么
Pandas像是Python中的Excel:它的基本数据结构是表格(在pandas中叫“DataFrame”),可以对数据进行各种操作和变换。它还能做很多其他的事。
二、常用函数
- 读取数据
import pandas as pd
data = pd.read_csv('files.csv')
# seq显示地声明分隔符,encodig显示地声明编码方式,n_rows声明读取前n行,skiprows声明读取时忽略的数据行
data = pd.read_csv('files.csv',sep=';',encoding='latin-1',n_rows=1000,skiprows=[2,5])
- 写入数据
data.to_csv('files.csv',index=None)
# 如果不设置index=None,程序会在文件中新增一个索引列,位于所有列的最前面,值为0,1,2,3,...
- 检查数据规模
data.shape
# 输出数据的行列信息(rows,columns)
data.describe()
# 输出数据的基本统计量,如计数、均值、标准差、分位数
- 查看数据
data.head(3)
# 输出前3行
data.tail(3)
# 输出最后3行
data.loc[8]
# 输出序号为8的一行(第一行序号为0)
data.loc[8,'column_1']
# 输出序号为8的行中,列名为'column_1'的数据
data.loc[range(4,6)]
# 输出行索引为4-6的行,不包括6
- 逻辑操作符
使用与&,或|,非~操作数据子集,注意逻辑操作符左右的数据需要用括号包裹 - 绘图
绘图功能得益于matplotlib库
data['column_numerical'].plot() # 折线图
data['column_numerical'].hist() # 直方图
- 更新数据
data.loc[8,'column_1'] = 'english'
# 将行号8列名column_1的值更新为english
data.loc[data['column_1']=='french','column_1'] = 'French'
# 将所有column_1列的值为french的单元更新为French
- 统计频数
data['lang'].value_counts()
- 行、列操作
map()函数将一个函数应用到指定列的每一元素
apply()函数将一个函数应用到所有列
applymap()函数将一个函数应用到表格的所有单元
data['column_1'].map(len)
# pandas库中的链式方法使得一行代码可以实现多个操作
data['column_1'].map(len).map(lambda x:x/100).plot()
- 相关矩阵与散布矩阵
# 相关矩阵
data.corr()
# 散布矩阵(scatter matrices)
pd.plotting.scatter_matrix(data,figsize=(12,8))
- 分组
基于某一列的数据进行分组,对另一列的数据执行操作。
reset_index()函数可以将数据转换为DataFrame的形式。
data.groupby('column_1')['column_2'].apply(sum).reset_index()
- 遍历行
iterrows()函数同时获取两个变量并实现循环
for i,row in data.iterrows():
dictionary[row['column_1']] = row['column_2']