pandas学习2

2020-04-18  本文已影响0人  奇楠之后
pandas 数据统计函数

1.汇总类统计--针对数字类型
df.describe()

# 一下提取所有数字列统计结果
df.desribe()
# 查看单个series的统计
df['bwendu'].mean() #平均值
df['bwendu'].max()
df['bwendu'].min()
  1. 唯一去重和按值计数--针对非数字,如枚举,分类列
# 去重
df['tianqi'].unique()
# 按值计数
df['tianji'].value_counts()

3.相关系数和协方差
对于两个变量x,y
协方差:衡量同向反向程度。如果协方差为正,说明xy同向变化,协方差越大,同向程度越高;如果协方差为负,说明xy反向变化,协方差越小,反向程度越高。
相关系数:衡量相似程度。当它们相关系数为1时,说明两个变量变化时正向相似度最高;当相关系数为-1时,说明两个变量变化是反向相似度最高

#  协方差矩阵
df.cov()
# 相关系数矩阵
df.corr()

pandas缺失值的处理

pandas使用这些函数处理缺失值

  1. isnull和notnull:检测是否控制,可用于df和series
  2. dropna:丢弃,删除缺失值
    • axis :删除行还是列,axis等于(0或者index,1或者columns)默认为0
    • how:如果等于any任何值为空都删除,如果等于all则所有值为空才删除
    • inplace:如果为true修改当前df,否则返回一个新的df
  3. 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 数据排序

  1. Series的排序:
    Series.sort_values(ascending=True, inplace=False)
    • ascending:默认为True升序排序,为False降序排序
    • inplace:是否修改原始Series
  2. 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的字符串处理:

  1. 使用方法:先获取Series的str属性,然后在属性上调用函数;
  2. 只能在字符串列上使用,不能数字列上使用;
  3. Dataframe上没有str属性和处理方法
  4. Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;
上一篇 下一篇

猜你喜欢

热点阅读