zoukankan      html  css  js  c++  java
  • pandas入门

    记录一些常用的pandas基础的使用方法。

    1. 数据结构

    pandas有两种主要的数据结构:Series和DataFrame

    1.1 Series

    Series是一个一维的数组对象,它包含了一个数据标签(称为索引)和一个数组数据。事实上,可以将Series理解为一个以数据标签为key,以数值为value的键值对(字典)。

    A.创建一个最简单的Series(其标签默认生成):

    obj=Series([3,5,7,8])

    生成结果:

    B.获取其中的值(获取Series的数组表示):

    obj.values

    C.获取索引对象:

    obj.index

    注意默认的索引,obj.index返回的对象是一个Int64的list对象

    D.创建带有索引的Series:

    obj=Series([2,3,4,6],index=['d','f','e','y'])

    E.利用索引获取值

    obj['d']

    F.通过bool数组过滤,使用乘法

    obj[obj>3]

    G.Series中的空值使用NaN表示,可以通过

    pd.isnull(obj)
    
    pd.notnull(obj)

    检查数据是否为空值。

    1.2 DataFrame

    DataFrame类似于关系型数据库中的一张二维表。DataFrame在Series的基础上添加了列索引,因此可以看作是添加了列索引的Series数组。

    A.创建一个DataFrame

    data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
            'year': [2000, 2001, 2002, 2001, 2002],
            'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
    frame=DataFrame(data)

    B.如果传递了一个行,但不包括在data中,创建的DataFrame将表示为NaN。(在这个例子中,debt所在列所有的行都为空值NaN,且我们显式地指定了行索引)

     

    C.利用列索引,通过字典或者属性形式,获取DataFrame对象的一列

    frame['year']
    
    frame.year

    D.利用DataFrame.ix[]获取DataFrame对象的一行。注意向ix中传入的可以是行索引名字(如字符串形式),也可以是位置号

    frame.ix[1]
    
    frame.ix['two']

    利用ix索引行,利用字典或者属性形式索引列,则可以组合以索引到DataFrame中的任意一个值

    E.列可以通过赋值来修改,赋予的值可以是数字,数组或者Series对象

    F.对一个不存在的列赋值,将会创建一个新的列

    注意,利用字典形式对一个不存在的列赋值,才会新建一个列

    2. 一些功能

    2.1 重新索引

    reindex使数据符合一个新的行索引,以构造一个新的对象。如果重新索引时,部分行不存在值,将置为NaN。columns可以对列重新索引

    重新索引时,可以对丢失的值进行填充。可以传入method或者fill_value填充

    当method为ffill表示填充值为前一行的值(前向填充),bfill表示填充值为后一行的值(后向填充)

    2.2 从坐标轴删除条目

    可以使用drop方法删除Series中的一个或多个值,删除DataFrame中的一个或多个行

    2.3 切片

    可以使用标签切片,注意,这里切片和Python的切片并不一样,他会把结束点也包括在内

    2.4 大文件读写

    csv大文件读写一般向read_csv()函数中传入chunksize或者iterator参数完成

    reader=pd.read_csv('./data1.csv',chunksize=10000)
    
    for chunk in reader:#chunk为DataFrame类型(二维表)
        for i in chunk.index:#chunk.index为元素类型为Int64的list
            value1=chunk.ix[i]['column']#获取chunk表中的一个值,先取行,在得列
            value2=chunk['column'][i]#获取chunk中的一个值,先取列,再得行
  • 相关阅读:
    C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
    PAT甲级1018留坑——第一个测试点未过(Dijikstar+Dfs)
    PAT甲级1019水题飘过
    微信该公众号提供的服务出现故障
    The valid characters are defined in RFC 7230 and RFC 3986
    eclipse中Web Deployment Assembly与build path作用
    Invalid bound statement (not found)
    springmvc获取bean
    mac/linux查询网络端口占用
    SiteMesh使用(2.4.2)
  • 原文地址:https://www.cnblogs.com/mengnan/p/7609033.html
Copyright © 2011-2022 走看看