《数据分析实战 45 讲》 学习笔记 Day2

135 阅读3分钟

05丨Python科学计算:Pandas

数据结构:Series 和 DataFrame

Series是个定长的字典序列。说是定长是因为在存储的时候,相当于两个 ndarray,这也是和字典结构最大的不同。因为在字典的结构里,元素的个数是不固定的。Series 有两个基本属性:index 和 values。在 Series 结构中,index 默认是 0,1,2,……递增的整数序列,当然我们也可以自己来指定索引,比如 index=[‘a’, ‘b’, ‘c’, ‘d’]。

DataFrame 类型数据结构类似数据库表。它包括了行索引和列索引,我们可以将 DataFrame 看成是由相同索引的 Series 组成的字典类型.
数据导入和输出
Pandas 允许直接从 xlsx,csv 等文件中导入数据,也可以输出到 xlsx, csv 等文件,非常方便。
数据清洗
数据清洗是数据准备过程中必不可少的环节,Pandas 也为我们提供了数据清洗的工具,在后面数据清洗的章节中会给你做详细的介绍,这里简单介绍下 Pandas 在数据清洗中的使用方法。 在数据清洗过程中,一般都会遇到以下这几种情况,下面我来简单介绍一下。

  1. 删除 DataFrame 中的不必要的列或行Pandas 提供了一个便捷的方法 drop() 函数来删除我们不想要的列或行。
  2. 重命名列名 columns,让列表名更容易识别如果你想对 DataFrame 中的 columns 进行重命名,可以直接使用 rename(columns=new_names, inplace=True) 函数
  3. 数据采集可能存在重复的行,这时只要使用 drop_duplicates() 就会自动把重复的行去掉。
  4. 格式问题更改数据格式这是个比较常用的操作,因为很多时候数据格式不规范,我们可以使用 astype 函数来规范数据格式
  5. 数据间的空格有时候我们先把格式转成了 str 类型,是为了方便对数据进行操作,这时想要删除数据间的空格,我们就可以使用 strip 函数:
  6. 大小写转换大小写是个比较常见的操作,比如人名、城市名等的统一都可能用到大小写的转换,在 Python 里直接使用 upper(), lower(), title() 函数:
  7. 查找空值数据量大的情况下,有些字段存在空值 NaN 的可能,这时就需要使用 Pandas 中的 isnull 函数进行查找。
    使用 apply 函数对数据进行清洗
    apply 函数是 Pandas 中自由度非常高的函数,使用频率也非常高。
    数据统计在数据清洗后,我们就要对数据进行统计了。Pandas 和 NumPy 一样,都有常用的统计函数,如果遇到空值 NaN,会自动排除。常用的统计函数包括:

image.png
两个 DataFrame 数据表的合并使用的是 merge() 函数,有下面 5 种形式:

  1. 基于指定列进行连接
  2. inner 内连接
  3. left 左连接
  4. right 右连接
  5. outer 外连接
    如何用 SQL 方式打开 PandasPandas
    的 DataFrame 数据类型可以让我们像处理数据表一样进行操作,比如数据表的增删改查,都可以用 Pandas 工具来完成。不过也会有很多人记不住这些 Pandas 的命令,相比之下还是用 SQL 语句更熟练,用 SQL 对数据表进行操作是最方便的,它的语句描述形式更接近我们的自然语言。事实上,在 Python 里可以直接使用 SQL 语句来操作 Pandas。这里给你介绍个工具:pandasql。pandasql 中的主要函数是 sqldf,它接收两个参数:一个 SQL 查询语句,还有一组环境变量 globals() 或 locals()。这样我们就可以在 Python 里,直接用 SQL 语句中对 DataFrame 进行操作,