pandas学习2
2020-04-18 本文已影响0人
奇楠之后
pandas 数据统计函数
1.汇总类统计--针对数字类型
df.describe()
# 一下提取所有数字列统计结果
df.desribe()
# 查看单个series的统计
df['bwendu'].mean() #平均值
df['bwendu'].max()
df['bwendu'].min()
- 唯一去重和按值计数--针对非数字,如枚举,分类列
# 去重
df['tianqi'].unique()
# 按值计数
df['tianji'].value_counts()
3.相关系数和协方差
对于两个变量x,y
协方差:衡量同向反向程度。如果协方差为正,说明xy同向变化,协方差越大,同向程度越高;如果协方差为负,说明xy反向变化,协方差越小,反向程度越高。
相关系数:衡量相似程度。当它们相关系数为1时,说明两个变量变化时正向相似度最高;当相关系数为-1时,说明两个变量变化是反向相似度最高
# 协方差矩阵
df.cov()
# 相关系数矩阵
df.corr()
pandas缺失值的处理
pandas使用这些函数处理缺失值
- isnull和notnull:检测是否控制,可用于df和series
- dropna:丢弃,删除缺失值
- axis :删除行还是列,axis等于(0或者index,1或者columns)默认为0
- how:如果等于any任何值为空都删除,如果等于all则所有值为空才删除
- inplace:如果为true修改当前df,否则返回一个新的df
- fillna:填充控制
- value:用于填充的值,可以是单个值,或是一个字典(key为列名,value为值)
- method:等于ffill使用前一个不为空的值进行填充,等于bfill使用后一个不为空的值进行填充
- axis :删除行还是列,axis等于(0或者index,1或者columns)默认为0
- inplace:如果为true修改当前df,否则返回一个新的df
pandas的settingwithcopywarning报警
condition = df['ymd'].str.startswith('2018-03')
df[condition]['wencha'] = df['bwendu'] - df['ywendu']
# 该链式操作就会引起settingwithcopywarning,相当于先get后set,由于get得到的子dataframe,pandas不知道是value还是copy,
pandas不允许修改子dataframe,再进行修改写入
要么使用.loc一个步骤直接修改源dataframe
要么先复制一个子dataframe,再一个步骤进行修改
pandas 数据排序
- Series的排序:
Series.sort_values(ascending=True, inplace=False)- ascending:默认为True升序排序,为False降序排序
- inplace:是否修改原始Series
- DataFrame的排序:
DataFrame.sort_values(by, ascending=True, inplace=False)- by:字符串或者List<字符串>,单列排序或者多列排序
- ascending:bool或者List,如果是个list对应by的多列
- nplace:是否修改原始DataFrame
Pandas字符串处理
df["bWendu"].str.replace("℃", "").astype('int32')
Pandas的字符串处理:
- 使用方法:先获取Series的str属性,然后在属性上调用函数;
- 只能在字符串列上使用,不能数字列上使用;
- Dataframe上没有str属性和处理方法
- Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;