pandas常用方法

import numpy as np
import pandas as pd
from pandas import Sereis, DataFrame

ser = Series(np.arange(3.))

data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))

data['w']  #选择表格中的'w'列,使用类字典属性,返回的是Series类型

data.w    #选择表格中的'w'列,使用点属性,返回的是Series类型

data[['w']]  #选择表格中的'w'列,返回的是DataFrame属性

data[['w','z']]  #选择表格中的'w'、'z'列

data[0:2]  #返回第1行到第2行的所有行,前闭后开,包括前不包括后

data[1:2]  #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
       #如果采用data[1]则报错

data.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同

data['a':'b']  #利用index值进行切片,返回的是**前闭后闭**的DataFrame, 
        #即末端是包含的  
data.irow(0)   #取data的第一行
data.icol(0)   #取data的第一列

data.head()  #返回data的前几行数据,默认为前五行,需要前十行则dta.head(10)
data.tail()  #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)

ser.iget_value(0)  #选取ser序列中的第一个
ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这回引起歧义。

data.iloc[-1]   #选取DataFrame最后一行,返回的是Series
data.iloc[-1:]   #选取DataFrame最后一行,返回的是DataFrame

data.loc['a',['w','x']]   #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知

data.iat[1,1]   #选取第二行第二列,用于已知行、列位置的选取。

一、创建对象

  1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:

     

  2、通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:

     

  3、通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:

     

  4、查看不同列的数据类型:

     

  5、如果你使用的是IPython,使用Tab自动补全功能会自动识别所有的属性以及自定义的列,下图中是所有能够被自动识别的属性的一个子集:

     

二、查看数据

  1、  查看frame中头部和尾部的行:

     

  2、  显示索引、列和底层的numpy数据:

     

  3、  describe()函数对于数据的快速统计汇总:

     

  4、  对数据的转置:

     

  5、  按轴进行排序

     

  6、  按值进行排序

     

三、选择

  • 获取

    1、 选择一个单独的列,这将会返回一个Series,等同于df.A:

       

    2、 通过[]进行选择,这将会对行进行切片

       

  • 通过标签选择

    1、 使用标签来获取一个交叉的区域

       

    2、 通过标签来在多个轴上进行选择

       

    3、 标签切片

       

    4、 对于返回的对象进行维度缩减

       

    5、 获取一个标量

       

    6、 快速访问一个标量(与上一个方法等价)

       

  • 通过位置选择

    1、 通过传递数值进行位置选择(选择的是行)

       

    2、 通过数值进行切片,与numpy/python中的情况类似

       

    3、 通过指定一个位置的列表,与numpy/python中的情况类似

       

    4、 对行进行切片

       

    5、 对列进行切片

       

    6、 获取特定的值

       

  • 布尔索引

    1、 使用一个单独列的值来选择数据:

       

    2、 使用where操作来选择数据:

       

    3、 使用isin()方法来过滤:

       

  • 设置

    1、 设置一个新的列:

       

    2、 通过标签设置新的值:

       

    3、 通过位置设置新的值:

       

    4、 通过一个numpy数组设置一组新值:

       

      上述操作结果如下:

         

    5、 通过where操作来设置新的值:

       

四、缺失值处理

  1、  reindex()方法可以对指定轴上的索引进行改变/增加/删除操作,这将返回原始数据的一个拷贝:

     

  2、  去掉包含缺失值的行:

     

  3、  对缺失值进行填充:

     

  4、  对数据进行布尔填充:

     

五、相关操作

  • 统计(相关操作通常情况下不包括缺失值)

    1、  执行描述性统计:

       

    2、  在其他轴上进行相同的操作:

        

    3、  对于拥有不同维度,需要对齐的对象进行操作。Pandas会自动的沿着指定的维度进行广播:

        

  • Apply

    对数据应用函数:

       

  • 直方图

       

  • 字符串方法

      

六、合并

  • Concat

       

  • Join 类似于SQL类型的合并

       

  • Append 将一行连接到一个DataFrame上

       

七、分组

  对于”group by”操作,我们通常是指以下一个或多个操作步骤:

    • (Splitting)按照一些规则将数据分为不同的组;
    • (Applying)对于每组数据分别执行一个函数;
    • (Combining)将结果组合到一个数据结构中;

  

  1、  分组并对每个分组执行sum函数:

     

  2、  通过多个列进行分组形成一个层次索引,然后执行函数:

     

posted on 2017-12-13 14:17  python屌丝的逆袭  阅读(211)  评论(0编辑  收藏  举报

导航