学习链接:https://www.bilibili.com/video/BV1DT4y1A7yT?p=4&spm_id_from=pageDriver&vd_source=d277ca1c756ccc73d77ba91b2b06064d
raise_exception() : 捕捉异常
format() : 对字符串进行格式化
isinstance(“”,int) : 判断变量是否为指定类型
pandas
np.random.randn(m,n) :随机生成一个mn的二维数组,其中rand n 的n是要求生成的数服从正态分布
pandas库的DataFrame可以定义一个二维数组二维数组,index(行名),columns(列名),dtype(设置数据类型))
DataFrame也可以传入一个字典*,传入时key为列名,DataFrame只要求每一列的数据类型是一致即可
head和tail可以查看前几行和后几行的数据(默认为5)
下标查看:index(df.index)
列标查看:columns
数据值查看:values
读取数据和数据基本操作
pd.read_excel(‘excel.xlxs’) 默认路径即为当前代码文件的文件夹下,可以在文件名前加上路径(注意可能需要转义字符,或在路径‘’前加 r 表示不要转义)
行操作:df.iloc[0] 查看第一行的数据 iloc[0:5] 前五行(左闭右开) loc[0:5] 前六行(左闭友闭)
增加一行:
dit = {}
s = pd.Series(dit)
s.name = …(行号)
df = df.appand(s)
删除一行:df.drop([行号])
删除一列 :df.drop(‘列名’,axis = 1,inplace=True) axis = 1表示竖着删除,默认axis=0表示删除一行,inplace为true表示删除后保存,覆盖掉原数据
缺失值以及异常值处理
方法 | 说明 |
---|---|
dropna | 根据标签中的缺失值进行过滤,删除缺失值 |
fillna | 对缺失值进行填充 |
isnull | 返回一个布尔值,判断哪些值是缺失值 |
notnull | isnull 的否定式 |
np.Nna为空值,np.mean() 获取平均值
删除缺失值:
异常值处理:(离群值)
使用判断条件筛选出正常数据
df[:5] :查看数据的前五行
数据格式转换
查看格式:df [‘key’].dtype
转换格式:df [key].astype(‘int’)
修改数据值:df.loc[行号,‘列名’] = num
排序
df.sort_values(by = ‘需要排序的列名’,‘第二排序依据列名(可有可无)’,ascending = false ) ascending为false时为降序排列,默认升序
基本统计分析
df.describe() :对dataframe中的数值型数据进行描述性统计(根据描述性统计来发现异常值)
最值:df [‘列名’].max() df [‘列名’].min()
均值:df [‘列名’].mean()
中位数:df [‘列名’].median()
方差:df [‘列名’].var()
标准差:df [‘列名’].std()
求和:df [‘列名’].sum()
相关系数、协方差:df [ [‘列名1’,‘列名2’] ].cov()
计数:len()
df [‘列名’] . unique () :统计这一列总共有哪些值,返回值是一个数组
数据替换:df [‘列名’] . replace( [‘被替换值’,‘替换值’],[’‘,’'],inplace = true) 多对需要替换时,用列表一一对应
统计每个数据出现的次数:df [‘列名’] . value_counts ()
保存数据
df.to_excel(‘文件夹名’)
数据透视 pivot_table
基础形式: pd.pivot_table(df,index(“列名”)) :针对指定列,对其数据做一个平均值的处理并展示
展示设置:pd.set_option(‘max_columns’,100) :展示100列 pd.set_option(‘max_rows’,100) :展示100行
多个索引:pd.pivot_table(df,index = [‘’,‘’],values = [‘列名’]) 只关心values这一列的数据
指定函数,获取不同的统计值:pd.pivot_table(df,index = [‘’,‘’],values = [‘列名’],aggfunc = np.sum)
非数值的数据删除掉:pd.pivot_table(df,index = [‘’,‘’],values = [‘列名’],aggfunc = np.sum,fill_value=0)
最下方显示总和数据:pd.pivot_table(df,index = [‘’,‘’],values = [‘列名’],aggfunc = np.sum,fill_value=0,margin=true)
不同值对应不同的处理方法时,写成字典形式:aggfunc = {‘列名’:np.num , ‘列名’:np.mean}
数据重塑和轴向旋转
层次化索引:在一个轴上有多个索引
几种索引方式:
利用unstack方法将Series变成一个DataFrame(二维数组)
可以通过stack方法再转换为Series
初始化一个DataFrame:
data = pd.DataFrame(np. arange(12).reshape(4,3)) 【设置为一个4*3的DataFrame对象】
设置行列的层次化索引
通过四个索引来定位一个元素
swaplevel:换行或列
set_index:把列变为索引
reset_index:把索引变成列
转换成功后,每一个索引都是一个元组
通过index值查询数据:df.loc [‘index’]
数据旋转
行列交换:data.T
DataFrame也可以使用stack和unstack,转换成层次化索引的Series
数据分组,分组运算
GroupBy技术:作用类似于数据透视表
分组运算只针对数值
传入多个分组变量时格式:([ [],[] ])
离散化处理(分组,区间化【对具体数值不关注,只关注其所在区间,以便定义属性】)
函数:pd.cut()
对电影的评分进行等级划分
并列条件格式:
合并数据集
append:合并操作
merge:横向合并(拼接)
打乱原数据操作: