Pandas学习笔记(二)概述

2018-10-31  本文已影响0人  笨笨锅

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

Pandas系列笔记

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

Pandas由以下元素组成:

这里说明一下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)。

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

上一篇 下一篇

猜你喜欢

热点阅读