zoukankan      html  css  js  c++  java
  • python中数据分析常用函数整理

    一. apply函数

    作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值。函数既可以使用默认的,也可以自定义。注意:在第二个输出中应用 head() 函数,因为它包含了很多行。

    #创建一个新函数
    def num_missing(x):
      return sum(x.isnull())
    
    #应用每一列
    print "Missing values per column:"
    print data.apply(num_missing, axis=0) #axis=0 defines that function is to be applied on each column
    
    #应用每一行
    print "
    Missing values per row:"
    print data.apply(num_missing, axis=1).head() #axis=1 defines that function is to be applied on each row
    

    二. loc函数

    作用:选择属性子集

    subSalesDf=salesDf.loc[0:4,'购药时间':'销售数量']

    三. rename函数

    作用:列重命名

    colNameDict = {'购药时间':'销售时间'}                  #将‘购药时间’改为‘销售时间’
    salesDf.rename(columns = colNameDict,inplace=True)

    四. dropna函数

    作用:删除缺失值,how='any'意为在给定的任何一列中有缺失值就删除

    salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any') #删除列(销售时间,社保卡号)中为空的行

    五. pd.to_datetime函数

    作用:字符串类型的数据转换成日期格式。传入的格式是原始数据的日期格式——format='%Y-%m-%d'固定写法:Y表示年、m表示月、d表示日。

    salesDf.loc[:,'销售时间']=pd.to_datetime(salesDf.loc[:,'销售时间'],
                                        format='%Y-%m-%d', 
                                        errors='coerce')

    errors='coerce': 如果原始数据不符合日期的格式,转换后的值为空值NaT。所以转换之后我们还要运行一次删除空值的代码,因为不符合格式的日期被转变为了空值需要删除。

    salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any')

    六.  pd.sort_values

    作用:对数据进行排序,by表示按那几列进行排序,ascending=True 表示升序排列,ascending=False表示降序排列

    salesDf=salesDf.sort_values(by='销售时间',     #按销售日期进行升序排列
                        ascending=True)

    七. reset_index函数

    作用:生成从0到N按顺序的索引值

    salesDf=salesDf.reset_index(drop=True)

    八. describe函数

    作用:查看数据框中所有数据每列的描述统计信息:(count:总数,mean:平均数,std:标准差,min:最小值,25%:下四分位数,50%:中位数,75%:上四分位数,max:最大值)

    salesDf.describe()

    九. 删除异常值

    作用:假设最小值出现了小于0的情况,分析应该是记录过程中出现错误所致。

    第一步:设置查询条件,这一步返回True和false

    querySer=salesDf.loc[:,'销售数量']>0

    第二步:应用查询条件

    salesDf=salesDf.loc[querySer,:]

    十. drop_duplicates函数

    作用:将重复的数据删除,同一个人发生的所有消费算作一次消费,根据列名(销售时间,社区卡号),如果这两个列值同时相同,只保留1条

    kpi1_Df=salesDf.drop_duplicates(
        subset=['销售时间', '社保卡号']
    )

    十一. groupby

    作用:根据某一列分组

    gb=groupDf.groupby(groupDf.index.month)

    对分组后的数据应用函数

    mounthDf=gb.sum()

     十二. 不适=使用for循环的列表生成器

    作用:当一个列表中的元素是由另外一个列表中对应元素经过运算得到时,可以省去for循环,适用一行代码生成模型

    x = [2,3,4,5]
    out = [item*2 for item in x]
    print(out)

    十三. Lambda 表达式

    作用:不使用def关键字,也没有return。Lambda 表达式创造的函数和普通的 def 构建的函数没什么不同,只不过函数体只有单独一个表达式而已。

    double=lambda x: x*2 #double是函数名,x是参数
    print(double(3))

    十四. map 和 filter 函数

    1. map

    作用:可以与Lambda表达式同时使用,map() 函数接收一个列表,和一个函数(可以是Lambda表达式),它对列表里的每个元素调用一个函数进行处理,再将结果放进一个新列表里。

    result=list(map(double,x))
    print(result)

    2. filter

    作用:它接收一个列表,和一个规则函数,在对列表里的每个元素调用这个规则函数之后,它把所有返回值为假的元素从列表中剔除,然后返回这个过滤后的子列表。

    result2=list(filter(lambda a:a>4,x))

    十五. arrange 函数

    作用:arange() 函数按照指定的步长返回一个等差数列。除开始和结束值之外,你还可以自定义步长和数据类型。请注意,给定的结束值参数是不会被包含在结果内的。

    result= np.arange(start,stop,step)

    十六. linspace 函数

    作用:将给定区间进行若干等分以后的等分点组成的数列。所以你传入的参数包括开始值、结束值,以及具体多少等分。linspace() 将这个区间进行等分后,把开始值、结束值和每个等分点都放进一个 NumPy 数组里。这在做数据可视化以及绘制坐标轴的时候都很有用。

    result4=np.linspace(2.0,3.0,num=5)

    十七. 矩阵合并函数

    1.Concat

    作用:把一个或多个数据表按行(或列)的方向简单堆叠起来(看你传入的 axis 参数是 0 还是 1 咯)。

    2. merge

    作用:merge() 将会以用户指定的某个名字相同的列为主键进行对齐,把两个或多个数据表融合到一起。

    3. join

    join()和 merge() 很相似,只不过 join() 是按数据表的索引进行对齐,而不是按某一个相同的列。当某个表缺少某个索引的时候,对应的值为空(NaN)。

    十八. pivot_table 函数

    作用:它能帮你对一个数据表进行格式化,并输出一个像 Excel 工作表一样的表格。实际使用中,透视表将根据一个或多个键对数据进行分组统计,将函数传入参数 aggfunc 中,数据将会按你指定的函数进行统计,并将结果分配到表格中。

    pivot_table(data, values=None, index=None, columns=None,aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
  • 相关阅读:
    js实现无限极分类
    js做通讯录的索引滑动显示效果和滑动显示锚点效果
    jquery 图片轮播demo实现
    纯JS实现可拖拽表单
    免费的字体图标网站
    ubuntu14.04安装MATLAB R2014a
    UBUNTU 14.04 + CUDA 7.5 + CAFFE
    朴素贝叶斯方法(Naive Bayes Method)
    随机森林分类(Random Forest Classification)
    特征选择和特征提取
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/12664901.html
Copyright © 2011-2022 走看看