Python--Numpy&pandas(二)

 

课程介绍

  • 课程内容和目标

pandas是什么:

Pandas 是 Python 里分析结构化数据的工具集

基础是 numpy:高性能矩阵运算
图形库 matplotlib: 提供数据可视化

pandas能做什么:

结构化数据分析

数据挖掘

例子:

  1. 学生成绩分析
  2. 股票数据分析
  • ipython

python 命令行与 ipython命令行的区别:

显示的数据可读性更强

 

import numpy as np
from numpy.random.randn

data = {i: randn(i} for i in range(6)}

 

命令补全

Shell 命令:

* 大部分直接可工作 cd, ls, pwd
* 少部分可在前面加 ! 号 !rename

内省:类或变量加问号

魔术命令

* %run 命令
* %timeit 命令
* %quickref 显示快速参考文档
* %magic 显示魔术命令列表和文档

 ipython notebook

在web上进行探索性编程,内联图片显示

启动

ipython notebook

特点

* web 上的 ipython
* 显示内联图片
* 导出数据和分析过程

 Numpy简介

  • ndarray

ndarray

* 多维数组
* 多维数组的运算

创建

* 一维数组
* 二维数组

属性

* shape
* dtype

数组索引

使用数组来索引

使用布尔值索引

数学运算

矩阵运算

其他常用函数

快速入门

创建pandas对象

查看数据

选择数据

处理丢失数据

数据运算

数据合并

数据分组

数据整形

数据透视

时间序列

数据可视化

数据载入与保存

数据分析实例

分析MoiveLens电影数据

核心数据结构

  • Series创建:

Series 是一维带标签的数组,数组里可以放任意的数据(整数,浮点数,字符串,Python Object)。其基本的创建函数是:

s = pd.Series(data, index=index)

其中 index 是一个列表,用来作为数据的标签。data 可以是不同的数据类型:

  • Python 字典
  • ndarray 对象
  • 一个标量值,如 5

 

  • 特性:

    Series 对象的性质

  • 类 ndarray 对象
  • 类 dict 对象
  • 标签对齐操作

 

  • DataFrame

创建:

DataFrame 是二维带行标签和列标签的数组。可以把 DataFrame 想你成一个 Excel 表格或一个 SQL 数据库的表格,还可以相像成是一个 Series 对象字典。它是 Pandas 里最常用的数据结构。
创建 DataFrame 的基本格式是:

df = pd.DataFrame(data, index=index, columns=columns)

其中 index 是行标签,columns 是列标签,data 可以是下面的数据:

  • 由一维 numpy 数组,list,Series 构成的字典
  • 二维 numpy 数组
  • 一个 Series
  • 另外的 DataFrame 对象

特性:

  • 列选择/增加/删除
  • 使用 assign() 方法来插入新列
  • 索引和选择
    • 选择一列 -> df[col] -> Series
    • 根据行标签选择一行 -> df.loc[label] -> Series
    • 根据行位置选择一行 -> df.iloc[label] -> Series
    • 选择多行 -> df[5:10] -> DataFrame
    • 根据布尔向量选择多行 -> df[bool_vector] -> DataFrame
  • 数据对齐
  • 使用 numpy 函数

panel:

Panel 是三维带标签的数组。实际上,Pandas 的名称由来就是由 Panel 演进的,即 pan(el)-da(ta)-s。Panel 比较少用,但依然是最重要的基础数据结构之一。

items: 坐标轴 0,索引对应的元素是一个 DataFrame
major_axis: 坐标轴 1, DataFrame 里的行标签
minor_axis: 坐标轴 2, DataFrame 里的列标签

 

  • 基础运算

重新索引

丢弃部分数据

映射函数:

apply/applymap

排序和排名

数据唯一性及成员资格

  • 索引

行索引

列索引

索引类

重复索引

多层索引:

创建

索引交换

按照索引层次进行统计

索引与列的转换

你可能感兴趣的:(python)