Python学习——Pandas基础之Series、DataFrame和数据文件的操作

  1. pandas简介
    pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数
    pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库灵活的数据处理功能
    对于金融行业的用户,pandas提供了大量适合于金融数据的高性能时间序列功能和工具
    学统计的人会对R语言比较熟悉,R提供的data.frame对象功能仅仅是pandas的DataFrame所提供的功能的一个子集
    pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具,它是基于Numpy构建的,有很多操作是类似的

  2. Series
    Series是一种类似于一维数组的对象,由数据(各种NumPy数据类型)以及与之相关的数据标签(即索引)组成
    可以通过字典构建Series对象,Series对象的索引也是可以修改的

    题外话:使用Pycharm新建py文件时,名称不要叫pandas,不然会无法导入pandas包…

    eg:
    import pandas as pd
    
    s1 = pd.Series([1, 2, 3, 4], index=list("abcd"))
    print(s1)
    print(s1.values)
    print(s1.index)
    # 修改索引
    s1.index = list("qazw")
    print(s1)
    
    # 通过字典构建Series对象
    dict1 = dict(a=1, b=2, c=3, d=4)
    s2 = pd.Series(dict1)
    print(s2)
    
    输出结果:
    a    1
    b    2
    c    3
    d    4
    dtype: int64
    [1 2 3 4]
    Index(['a', 'b', 'c', 'd'], dtype='object')
    q    1
    a    2
    z    3
    w    4
    dtype: int64
    a    1
    b    2
    c    3
    d    4
    dtype: int64
    
  3. DataFrame
    DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)
    DataFrame既有行索引也有列索引,可以看做由Series组成的字典
    最常用的构建方法是直接传入一个由等长列表或NumPy数组组成的字典

  4. Drop
    丢弃指定轴上的项:drop方法返回一个在指定轴上删除了指定值的新对象

    eg:
    import pandas as pd
    
    # Dataframe
    data = {"name": ["a", "b", "c"], "age": [11, 12, 13]}
    frame1 = pd.DataFrame(data)
    print(frame1)
    # drop丢弃指定轴上的项
    # 返回一个新的frame,不会对原来的frame进行修改
    frame2 = frame1.drop("name", axis=1)
    frame3 = frame1.drop([0], axis=0)
    print(frame2)
    print(frame3)
    
    # 切片
    print(frame1["age"] > 12)
    print(frame1[frame1["age"] > 12])
    
    print(frame1.count(axis=0))
    print(frame1.count(axis=1))
    # 针对Series或各DataFrame列计算汇总统计
    print(frame1.describe())
    
    输出结果:
      name  age
    0    a   11
    1    b   12
    2    c   13
       age
    0   11
    1   12
    2   13
      name  age
    1    b   12
    2    c   13
    0    False
    1    False
    2     True
    Name: age, dtype: bool
      name  age
    2    c   13
    name    3
    age     3
    dtype: int64
    0    2
    1    2
    2    2
    dtype: int64
            age
    count   3.0
    mean   12.0
    std     1.0
    min    11.0
    25%    11.5
    50%    12.0
    75%    12.5
    max    13.0
    

在这里插入图片描述

  1. 数据文件的操作——读取与写入
    pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,常用的函数为read_csv和read_table

    函数的选项可以划分为几个大类
    索引:将一个或多个列当做返回的DataFrame处理,以及是否从文件、用户获取列名
    类型推断和数据转换:包括用户定义值的转换、缺失值标记列表等
    日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合起来
    迭代:支持对大文件进行逐块迭代
    不规整数据问题:跳过一些行、页脚、注释或其他一些不重要的东西

    文件读取:
    Pandas提供了一些用于将表格型数据读取位DataFrame对象的函数。其中最常用的为read_csv和read_table。
    read_csv从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号。
    read_table从文件、URL、文件型对象中加载带分隔 符的数据。默认分隔符为制表符(“\t”)

    read_csv/read_table常用参数介绍:
    path :表示文件系统位置、URL、文件型对象的字符串
    sep/delimiter:用于对行中个字段进行拆分的字符序列或正则表达式
    header:用做列名的行号。默认为0(第一行),若无header行,设为None
    names:用于结果的列名列表,结合header=None
    skiprows: 需要忽略的行数
    na_values:一组用于替换NA的值
    nrows:需要读取的行数(从文件开始处算起)
    verbose:打印各种解析器信息,比如“非数值列中缺失值的数量”
    encoding:用于unicode的文本格式编码。例如,“utf-8”表示用UTF-8 编码的文本

    写入数据:
    使用to_csv写出数据到文件,默认会写出行和列的标签, 可以设置 index和header选项进行选择。
    在这里插入图片描述
    在这里插入图片描述

    eg:
    import pandas as pd
    
    data = {"name": ["a", "b", "c"], "age": [11, 12, 13]}
    frame1 = pd.DataFrame(data)
    
    # index和header默认为True,会写出行和列的标签
    frame1.to_csv("data/a.csv", index=False, header=False)
    print(pd.read_csv("data/a.csv"))
    
    输出结果:
       a  11
    0  b  12
    1  c  13
    

猜你喜欢

转载自blog.csdn.net/narutodzx/article/details/105396387
今日推荐