美文网首页
Pandas学习笔记(二)概述

Pandas学习笔记(二)概述

作者: 笨笨锅 | 来源:发表于2018-10-31 15:33 被阅读0次

    这篇翻译文章目的只是对Pandas有一个大概了解,建议不要深究某一句话或一个词,了解内容大概就可以了(而且最好还是看官方英文文档,有些词翻译成中文还是很变扭),随着对Pandas的编程实践,对她的理解会加深,深究本文某句话没多大意义。

    Pandas系列笔记

    Pandas是一个开源,BSD-licensed库,她为Python语言提供高性能、易于使用的数据结构和数据分析工具。

    Pandas由以下元素组成:

    • 一组带标签的数组,主要数据结构为Series和DataFrame。
    • 索引对象,支持简单的轴索引(simple axis indexing)和多级/层次化轴索引(multi-level / hierarchical axis indexing)。
    • 由引擎组成的集成组,用于聚合和转换数据集。
    • date_range 和支持自定义频率的自定义日期偏移。
    • 加载表格数据文件(CSV,分隔符,Excel 2003),通过快速高效的PyTables/HDF5格式,保存和加载Pandas对象。
    • 使用标准数据结构的高效内存“sparse” versions,存储缺失数据或常量(某些固定值)的数据。
    • Moving Window Statistics

    这里说明一下axis,Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释:
    轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。

    数据结构 Data Structures

    Dimensions Name Description
    1 Series 1D labeled homogeneously-typed array 是1D标签的同一类数组的数据结构
    2 DataFrame General 2D labeled, size-mutable tabular structure with potentially heterogeneously-typed column 一般为2D标签的大小可变的表格结构,可能有异种类型的列

    为什么会有多个数据结构

    考虑Pandas数据结构的最佳方法是将其视为低维数据的灵活容器。DataFrame是Series的容器,Series是标量的容器。我们希望能够以类似字典的方式从这些容器中插入和删除对象。

    这些默认行为涉及到时间序列(time series)和横断面数据集(cross-sectional data sets)的典型方向。当使用ndarrays存储2维和3维数据,编写函数时,用户需要考虑数据集的方向;轴(axis)被认为或多或少是等价的(除非C或Fortran - contiguiness关系到性能)。在Pandas中,轴(axis)的目的是为数据提供更多的语义意义;例如,对于特定的数据集,去设置一种可能“正确”的方法来确定数据的方向。因此,目的是减少编写下游函数中的数据转换所需的脑力劳动。

    例如,对于DataFrame,语义上最好理解为索引(行)和列,而不是轴0和轴1。遍历DataFrame的所有列,以获取可读性的代码:

    for col in df.columns:
        series = df[col]
        # do something with series
    

    可变性与数据拷贝

    所有Pandas数据结构都是值可变的(value-mutable),但大小不总是可变的。序列的长度不能更改,例如,可以将列插入DataFrame中。但是,绝大多数方法都生成新对象,并且不改变输入数据。一般来说,我们喜欢视其为值不可变(value-immutable)。

    在学习和使用时,你可以通过常用的两个途径获得支持

    相关文章

      网友评论

          本文标题:Pandas学习笔记(二)概述

          本文链接:https://www.haomeiwen.com/subject/nwogtqtx.html