Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化

简介

Python 的 pandas 包用于数据操作和分析,旨在让您以直观的方式处理带标签或关联数据。

pandas 包提供了电子表格功能,但由于您正在使用 Python,因此它比传统的图形电子表格程序要快得多且更高效。

在本教程中,我们将介绍如何设置一个大型数据集,pandasgroupby()pivot_table() 函数,以及如何可视化数据。

要熟悉 pandas 包,您可以阅读我们的教程《Python 3 中 pandas 包及其数据结构的介绍》。

先决条件

本指南将介绍如何在本地桌面或远程服务器上使用 pandas 处理数据。处理大型数据集可能会占用大量内存,因此在任何情况下,计算机都需要至少 2GB 内存 来执行本指南中的一些计算。

在本教程中,我们将使用 Jupyter Notebook 来处理数据。如果您尚未安装,请按照我们的教程安装并设置 Python 3 的 Jupyter Notebook。

设置数据

在本教程中,我们将使用美国社会保障网站上提供的有关婴儿姓名的数据,该数据以 8MB 的压缩文件形式提供。

让我们在本地计算机上激活我们的 Python 3 编程环境,或者在服务器上从正确的目录开始:

cd environments
. my_env/bin/activate

现在让我们为我们的项目创建一个新目录。我们可以称之为 names,然后进入该目录:

mkdir names
cd names

在该目录中,我们可以使用 curl 命令从社会保障网站获取 zip 文件:

curl -O https://www.ssa.gov/oact/babynames/names.zip

文件下载完成后,让我们验证我们将要使用的所有软件包是否已安装:

  • numpy 用于支持多维数组
  • matplotlib 用于可视化数据
  • pandas 用于数据分析
  • seaborn 用于美化我们的 matplotlib 统计图形

如果您尚未安装任何软件包,请使用 pip 安装它们,例如:

pip install pandas
pip install matplotlib
pip install seaborn

如果您尚未安装 numpy 包,它也将被安装。

现在我们可以启动 Jupyter Notebook:

jupyter notebook

一旦您进入 Jupyter Notebook 的 Web 界面,您将在那里看到 names.zip 文件。

要创建一个新的笔记本文件,请从右上角的下拉菜单中选择 New > Python 3

!创建一个新的 Python 3 笔记本

这将打开一个笔记本。

让我们从导入我们将要使用的软件包开始。在我们的笔记本顶部,我们应该写入以下内容:

import numpy as np
import matplotlib.pyplot as pp
import pandas as pd
import seaborn

我们可以运行此代码,并通过键入 ALT + ENTER 进入新的代码块。

让我们还告诉 Python Notebook 在线保留我们的图形:

matplotlib inline

让我们运行代码,并通过键入 ALT + ENTER 继续。

从这里,我们将继续解压缩 zip 存档,将 CSV 数据集加载到 pandas 中,然后连接 pandas 数据帧。

解压缩 Zip 存档

要将 zip 存档解压缩到当前目录中,我们将导入 zipfile 模块,然后使用文件名(在我们的情况下是 names.zip)调用 ZipFile 函数:

import zipfile
zipfile.ZipFile('names.zip').extractall('.')

我们可以运行代码,并通过键入 ALT + ENTER 继续。

现在,如果您回到 names 目录,您将在其中看到以 CSV 格式存储的姓名数据的 .txt 文件。这些文件将对应于文件中的年份数据,从 1881 年到 2015 年。这些文件都遵循类似的命名约定。例如,2015 年的文件名为 yob2015.txt,而 1927 年的文件名为 yob1927.txt

为了查看其中一个文件的格式,让我们使用 Python 打开一个文件并显示前 5 行:

open('yob2015.txt','r').readlines()[:5]

运行代码,并通过键入 ALT + ENTER 继续。

['Emma,F,20355\n',
 'Olivia,F,19553\n',
 'Sophia,F,17327\n',
 'Ava,F,16286\n',
 'Isabella,F,15504\n']

数据的格式是首先是姓名(如 EmmaOlivia),然后是性别(女性姓名为 F,男性姓名为 M),然后是当年出生具有该姓名的婴儿数量(2015 年出生的名为 Emma 的婴儿有 20,355 个)。

有了这些信息,我们就可以将数据加载到 pandas 中。

将 CSV 数据加载到 pandas

要将逗号分隔值数据加载到 pandas 中,我们将使用 pd.read_csv() 函数,传递文本文件的名称以及我们决定的列名。我们将将其分配给一个变量,本例中为 names2015,因为我们使用的是 2015 年出生文件的数据。

names2015 = pd.read_csv('yob2015.txt', names = ['Name', 'Sex'
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张无忌打怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值