zoukankan      html  css  js  c++  java
  • 【学习】DataFrame&Series类【pandas】

    参考链接:http://blog.csdn.net/yhb315279058/article/details/50226027
    DataFrame类:
    DataFrame有四个重要的属性:
    index:行索引。
    columns:列索引。
    values:值的二维数组。
    name:名字。
    这个类是Pandas最重要的类之一。
    构建方法,DataFrame(sequence),通过序列构建,序列中的每个元素是一个字典。
    frame=DateFrame构建完之后,假设frame中有'name','age','addr'三个属性,可以使用fame['name']查看属性列内容,也可以fame.name这样直接查看。
    frame按照'属性提取出来的每个列是一个Series类。
    DataFrame类可以使用布尔型索引。
    groupby(str|array...)函数:可以使用frame中对应属性的str或者和frame行数相同的array作为参数还可以使用一个会返回和frame长度相同list的函数作为参数,如果使用函数做分组参数,这个用做分组的函数传入的参数将会是fame的index,参数个数任意。使用了groupby函数之后配合,size()函数就可以对groupby结果进行统计。
    groupby后可以使用:
    size():就是count
    sum():分组求和
    apply(func,axis=0):在分组上单独使用函数func返回frame,不groupby用在DataFrame会默认将func用在每个列上,如果axis=1表示将func用在行上。

    reindex(index,column,method):用来重新命名索引,和插值。
    size():会返回一个frame,这个frame是groupby后的结果。
    sum(n).argsort():如果frame中的值是数字,可以使用sum函数计算frame中摸个属性,各个因子分别求和,并返回一个Series,这个Series可以做为frame.take的参数,拿到frame中对应的行。
    pivot_table(操作str1,index=str2,columns=str3,aggfunc=str4)透视图函数:
    str1:是给函数str4作为参数的部分。
    str2:是返回frame的行名。
    str3:是返回frame的列名。
    str4:是集合函数名,有'mean','sum'这些,按照str2,str3分组。
    使用透视图函数之后,可以使用.sum()这类型函数,使用后会按照index和columns的分组求和。
    order_index(by,ascending):
    返回一个根据by排序,asceding=True表示升序,False表示降序的frame
    concat(list):将一个列表的frame行数加起来。
    ix[index]:就是行索引,DataFrame的普通下标是列索引。
    take(index):作用和ix差不多,都是查询行,但是ix传入行号,take传入行索引。
    unstack():将行信息变成列信息。
    apply(func,axis=0)和applymap(func):apply用在DataFrame会默认将func用在每个列上,如果axis=1表示将func用在行上。applymap表示func用在每个元素上。
    combine_first(frame2):combine_first会把frame中的空值用frame1中对应位置的数据进行填充。Series方法也有相同的方法。
    stack()函数,可以将DataFrame的列转化成行,原来的列索引成为行的层次索引。(stack和unstack方法是两个互逆的方法,可以用来进行Series和DataFrame之间的转换)
    duplicated():返回一个布尔型Series,表示各行是否重复。
    drop_duplicates():返回一个移除了重复行后的DataFrame
    pct_change():Series也有这个函数,这个函数用来计算同colnums两个相邻的数字之间的变化率。
    corr():计算相关系数矩阵。
    cov():计算协方差系数矩阵。
    corrwith(Series|list,axis=0):axis=0时计算frame的每列和参数的相关系数。


    Series类:
    两个重要的属性:
    value:存放series值的一个数组。
    index:Series的下标索引。
    name:就是Series的名字
    index有一个name属性。
    可以通过Series(list,index=None)的形式来创建一个Series类,index表示的是用下标访问对应的数据。
    也可以直接使用字典创建Series(dict)
    value_counts():该方法可以用来统计series类中各因子出现的次数,返回一个带统计结果的series。
    fillna(str):给series中的空值赋值。
    plot()函数:可以用来给带统计结果的函数画图。但是要配合matplotlib使用
    notnull():返回一个判断series位置是否空值的布尔型索引。
    sum():如果是数字型Series,可以求和。
    cumsum():如果是数字型Series,可以返回一个累加的Series。
    searchsorted():在数字Series中定位一个数字的位置,这个数字不完全相同,但接近。
    map(func):将Series中的元素,每个都当做func的参数使用一遍,返回执行结果组成的Series
    unique():类似于sql中的distinct
    isnull()/notnull():返回一个布尔型索引
    order():对值进行排序。
    order_value():对索引进行排序。
    unstack()方法:将Series的层次索引转换成列索引,变成一个DataFrame。
    replace():可以用list或dict作为参数,替换需要替换的值
    str属性:Series.str后会将Series单做一个字符串的集合,这个集合能够使用字符串的操作,例如:
    data=Series(['abc','bcd','cde'])
    data.str[1]
    输出;
    1 b
    2 c
    3 d

    read_table()函数:读dat文件。
    import pandas as pd
    mnames=['movie_id','title','genres']
    movies=pd.read_table(r'C:UsersAdministratorDesktoppython for data analysis datapydata-book-masterch02movielensmovies.dat',sep='::',header=None,names=mnames)

    read_csv()函数:可以将frame文件直接读成frame。
    movies=pd.read_csv(r'namesjob1880.txt',names=column)
    read_csv函数有一个sep参数,设置分隔符,可以给这个参数传入正则表达式。
    skiprows参数,参数是一个list,表示读取文件的时候,跳过list中的几行,第一行为0

    read_excel()函数
    可以直接读取excel文件为DataFrame

    merge(frame1,frame2):
    根据两个frame列的名字自动合并,返回一个frame。
    此函数可以通过on,left_on,right_on三个属性来设置怎么frame1和frame2通过什么属性来进行连接。

    concat函数:
    可以将DataFrame或者Series按照axis的方向堆积起来。

    cut函数和qcut函数:
    可以将一些离散值分箱,cut函数用的是数值区间将数值分箱,qcut用的是分位数。
    cut用在长度相等的桶,qcut用在大小相等的桶。

    to_datetime(str):
    解析常用的时间格式。

    date_range函数:
    产生时间序列。
  • 相关阅读:
    面试题目-atof与ftoa
    数据结构-List
    数据结构-Vector
    面试题目-计算最大公约数
    数据结构-二分查找
    面试题目-用递归通过单字符输出打印多位的数字
    Linux-守护进程的实现
    面试题目-链表反转
    Linux-C程序的存储空间布局
    Linux-如何添加路由表
  • 原文地址:https://www.cnblogs.com/yizhenfeng/p/7209373.html
Copyright © 2011-2022 走看看