pandas:一个神奇的东西(零)

pandas:一个神奇的东西(零)_第1张图片
cover

本文写给谁?

  • 可以用Python写出Hello world。

  • Excel太弱鸡了,vba语法太变态;R没空学;SPSS,SAS是什么?我就是这样。

  • 有一定的数据处理需求,比如你的七大姑八大姨突然发你一张表让你搞。

准备工作

首先,你需要一些有用的资料:

pandas官方文档

你在网上能够搜到的所有中文资料都可以认为是该文档的翻译。

pandas速查手册

顾名思义,不够都是一些简单操作。

利用Python进行数据分析

真要学pandas,这本是一定要买的,因为本书的作者Kinney就是搞出pandas的人,我只能算草草翻过这本书,但我觉得这本书结构略有问题,也不太考虑业务场景。

打开IDE,抽根烟喝杯水,一个早上过去了

终端输入:

pip install pandas

在python文件开头也要写上:

import pandas as pd

首先你要了解的是,pandas中两个最基本的对象是Series和DataFrame。

Series的性质和Python中原生的dict差不多,一个key对应一个vaule,而且key必须是唯一的。

DataFrame(以下简称df)的性质则和SQL中的table差不多,但和MySQL不同的是,对于一个df加.T就可以实现转置,据Kinney自己说pandas的行(row)操作和列(column)操作基本是平衡的。

什么叫基本平衡呢?就是有时不平衡,举一个例子,比如往一个Series或者df的最后(或着某一位置)插入一行数据,目前没有什么帅气的方法,能想到的可行的解决办法是:

  • 用dict或者其他手段创建一个新的df,然后用append操作将两个df合并起来。

  • df.T转置转置原表,然后插入一个新的列。

想想比较丑陋,其实Stack上有人问过这样的问题,一位大神给出了答案:

如何帅气地插入一行-stack overflow

pandas本身依赖numpy的,而ndarray在内存里占据这一段连续的内存空间,任何改变ndarray长度的操作都势必让所有value改变内存中的位置,也确实比较慢。

Pandas适合处理多种类型的数据:

具有不同数据类型列的表格数据,如SQL表或Excel电子表格
有序或无序(不固定频率)的时间序列数据。
带有行和列标签的任意矩阵数据
任何其他形式的观测/统计数据集。
Pandas主要包含三种数据结构,分别是Series(一维),DataFrame(二维),Panel(三维)。

其中Series和DataFrame可以用于处理绝大多数金融,统计,社会科学和许多工程领域的典型问题。对于R用户而言,DataFrame在支持所有R的data.frame的功能的基础上还能有更丰富的应用。Pandas库建立在NumPy库之上,旨在与科学计算环境和许多其他第三方库完美集成。

Pandas的优势:

可以轻易的处理浮点及非浮点数据类型的缺失值(NaN)
大小可变:DataFrame和Panel都可以删除或插入列
数据自动对齐
灵活强大的分组功能,可对数据集进行拆分组合操作
方便的将其他Python和NumPy数据结构中不同类索引的数据转换为DataFrame对象
基于智能标签的切片,花式索引,轻易从大数据集中取出子集
直观的合并,连接数据集
轻易的重新定义数据集形状和转置
轴(axes)的分层标签(使每个元组有多个标签成为可能)

Pandas库是统计科学家在分析数据时的理想工具,非常适合应用于数据清洗,分析/建模,然后将分析结果组织成适合于绘图或表格显示的形式的全部过程。statsmodel库依赖Pandas库,使其成为Python统计计算系统的重要组成部分。
Pandas库已经广泛应用于金融数据。

你可能感兴趣的:(pandas:一个神奇的东西(零))