介绍

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

基于numpy软件包构建,pandas包括标签,描述性索引,在处理常见数据格式和丢失数据方面特别强大。

pandas软件包提供了电子表格功能,但使用Python处理数据要比使用电子表格快得多,并且证明pandas非常有效。

在本教程中,我们将首先安装pandas,然后让您了解基础数据结构:Series和DataFrames。

安装 pandas

同其它Python包,我们可以使用pip安装pandas。

首先,让我们进入我们选择的本地编程环境或基于服务器的编程环境,并在那里安装pandas和它的依赖项:pip install pandas numpy python-dateutil pytz

您应该收到类似于以下内容的输出:Successfully installed pandas-0.19.2

如果您希望pandas在Anaconda中安装,可以使用以下命令执行此操作:conda install pandas

此时,您已经准备好开始使用pandas软件包了。

Series

在pandas,Series是一维数组,可以容纳任何数据类型。轴标签统称为索引。

让我们在命令行中启动Python解释器,如下所示:python

在解释器中,将numpy和pandas包导入您的命名空间:import numpy as np

import pandas as pd

在我们使用Series之前,让我们来看看它通常是什么样的:s = pd.Series([data], index=[index])

您可能会注意到数据的结构类似于Python 列表。

没有声明索引

我们将输入整数数据,然后为Series提供name参数,但我们将避免使用index参数来查看pandas如何隐式填充它:s = pd.Series([0, 1, 4, 9, 16, 25], name='Squares')

现在,让我们打电话给系列,这样我们就可以看到pandas的作用:s

我们将看到以下输出,左列中的索引,右列中的数据值。列下方是有关系列名称和组成值的数据类型的信息。0 0

1 1

2 4

3 9

4 16

5 25

Name: Squares, dtype: int64

虽然我们没有提供数组的索引,有一个隐含加入的整数值的0到5。

声明索引

正如上面的语法向我们展示的那样,我们也可以使用显式索引创建Series。我们将使用有关地球海洋平均深度的数据:avg_ocean_depth = pd.Series([1205, 3646, 3741, 4080, 3270], index=['Arctic', 'Atlantic', 'Indian', 'Pacific', 'Southern'])

在构建系列之后,让我们调用它来查看输出:avg_ocean_depthArctic 1205

Atlantic 3646

Indian 3741

Pacific 4080

Southern 3270

dtype: int64

我们可以看到我们提供的索引在左侧,右侧是值。

索引和切片系列

使用pandasSeries,我们可以通过相应的数字索引来检索值:avg_ocean_depth[2]3741

我们还可以按索引号切片来检索值:avg_ocean_depth[2:4]Indian 3741

Pacific 4080

dtype: int64

另外,我们可以调用索引的值来返回它对应的值:avg_ocean_depth['Indian']3741

我们还可以使用索引的值进行切片以返回相应的值:avg_ocean_depth['Indian':'Southern']Indian 3741

Pacific 4080

Southern 3270

dtype: int64

请注意,在最后一个示例中,使用索引名称进行切片时,这两个参数是包容性的而不是独占的。

让我们用quit()退出Python解释器。

用字典初始化的系列

有了pandas,我们也可以用字典数据类型来初始化一个系列。这样,我们不会将索引声明为单独的列表,而是使用内置键作为索引。

让我们创建一个名为ocean.py的文件,并添加以下字典并调用它来打印它。import numpy as np

import pandas as pd

avg_ocean_depth = pd.Series({

'Arctic': 1205,

'Atlantic': 3646,

'Indian': 3741,

'Pacific': 4080,

'Southern': 3270

})

print(avg_ocean_depth)

现在我们可以在命令行上运行该文件:python ocean.py

我们将收到以下输出:OutputArctic 1205

Atlantic 3646

Indian 3741

Pacific 4080

Southern 3270

dtype: int64

系列以有条理的方式显示,左侧是索引(由我们的键组成),右侧是一组值。

这将像其他Python字典一样,您可以通过调用键来访问值,我们可以这样做:...

print(avg_ocean_depth['Indian'])

print(avg_ocean_depth['Atlantic':'Indian'])3741

Atlantic 3646

Indian 3741

dtype: int64

但是,这些系列现在是Python对象,因此您将无法使用字典功能。

Python词典提供了另一种表单来在pandas中设置Series。

DataFrames

DataFrame是二维标记的数据结构,其具有可由不同数据类型组成的列。

DataFrame类似于电子表格或SQL表。通常,在使用pandasDataFrame 时,DataFrames将是您将使用的最常用对象。

要了解pandasDataFrame的工作原理,让我们设置两个Series,然后将它们传递给DataFrame。第一个系列将是我们之前的avg_ocean_depth系列,第二个max_ocean_depth系列将包含地球上每个海洋最大深度的数据,以米为单位。import numpy as np

import pandas as pd

avg_ocean_depth = pd.Series({

'Arctic': 1205,

'Atlantic': 3646,

'Indian': 3741,

'Pacific': 4080,

'Southern': 3270

})

max_ocean_depth = pd.Series({

'Arctic': 5567,

'Atlantic': 8486,

'Indian': 7906,

'Pacific': 10803,

'Southern': 7075

})

设置这两个系列之后,让我们将DataFrame添加到max_ocean_depth系列下方的文件底部。在我们的示例中,这两个系列都具有相同的索引标签,但如果您使用具有不同标签的Series,则会标记缺失值NaN。

这是以我们可以包含列标签的方式构造的,我们将其声明为Series'变量的键。要查看DataFrame的外观,让我们发出一个打印它的调用。...

max_ocean_depth = pd.Series({

'Arctic': 5567,

'Atlantic': 8486,

'Indian': 7906,

'Pacific': 10803,

'Southern': 7075

})

ocean_depths = pd.DataFrame({

'Avg. Depth (m)': avg_ocean_depth,

'Max. Depth (m)': max_ocean_depth

})

print(ocean_depths)Avg. Depth (m) Max. Depth (m)

Arctic 1205 5567

Atlantic 3646 8486

Indian 3741 7906

Pacific 4080 10803

Southern 3270 7075

输出显示我们的两个列标题以及每个列标题下的数字数据,字典键中的标签位于左侧。

在DataFrame中对数据进行排序

我们可以使用DataFrame.sort_values(by=...)函数对DataFrame中的数据进行排序。

例如,让我们使用ascending布尔参数,该参数可以是True或False。注意,ascending是我们可以传递给函数的参数,但descending不是。...

print(ocean_depths.sort_values('Avg. Depth (m)', ascending=True))Avg. Depth (m) Max. Depth (m)

Arctic 1205 5567

Southern 3270 7075

Atlantic 3646 8486

Indian 3741 7906

Pacific 4080 10803

现在,输出显示最左侧整数列中从低值到高值的数字。

使用DataFrames进行统计分析

接下来,让我们来看看一些总结的统计数据,我们可以用DataFrame.describe()功能从pandas收集。

在不传递特定参数的情况下,DataFrame.describe()函数将为数值数据类型提供以下信息:

返回这是什么意思count频率计数; 事情发生的次数

mean平均值或平均值

std标准偏差,用于表示数据变化范围的数值

min集合中的最小或最小数字

25%第25百分位数

50%第50百分位数

75%第75百分位数

max集合中的最大或最大数字

让我们通过使用describe()函数调用我们的ocean_depthsDataFrame 让Python打印出这个统计数据:...

print(ocean_depths.describe())

当我们运行此程序时,我们将收到以下输出:Output Avg. Depth (m) Max. Depth (m)

count 5.000000 5.000000

mean 3188.400000 7967.400000

std 1145.671113 1928.188347

min 1205.000000 5567.000000

25% 3270.000000 7075.000000

50% 3646.000000 7906.000000

75% 3741.000000 8486.000000

max 4080.000000 10803.000000

现在,您可以将此处的输出与原始DataFrame进行比较,并在将其视为一个组时更好地了解地球海洋的平均深度和最大深度。

处理缺失值

通常在处理数据时,您将缺少值。pandas软件包提供了许多不同的方法来处理丢失的数据,这些null数据是指由于某种原因不存在的数据或数据。在pandas中,这被称为NA数据并被渲染为NaN。

我们使用DataFrame.dropna()函数去了下降遗漏值,使用DataFrame.fillna()函数填补缺失值。这将确保您在开始时不会遇到问题。

让我们创建一个名为user_data.py的新文件并使用一些缺少值的数据填充它并将其转换为DataFrame:import numpy as np

import pandas as pd

user_data = {'first_name': ['Sammy', 'Jesse', np.nan, 'Jamie'],

'last_name': ['Shark', 'Octopus', np.nan, 'Mantis shrimp'],

'online': [True, np.nan, False, True],

'followers': [987, 432, 321, np.nan]}

df = pd.DataFrame(user_data, columns = ['first_name', 'last_name', 'online', 'followers'])

print(df)

当我们运行程序时,我们的打印调用向我们显示以下输出:first_name last_name online followers

0 Sammy Shark True 987.0

1 Jesse Octopus NaN 432.0

2 NaN NaN False 321.0

3 Jamie Mantis shrimp True NaN

这里有很多缺失的值。

让我们首先使用dropna()删除缺失的值。...

df_drop_missing = df.dropna()

print(df_drop_missing)

由于在我们的小数据集中只有一行没有任何值丢失,因此在运行程序时,这是唯一保持完整的行:first_name last_name online followers

0 Sammy Shark True 987.0

作为删除值的替代方法,我们可以使用我们选择的值填充缺失值,例如0。这个我们将使用DataFrame.fillna(0)实现。

删除或注释掉我们添加到文件中的最后两行,并添加以下内容:...

df_fill = df.fillna(0)

print(df_fill)

当我们运行程序时,我们将收到以下输出:first_name last_name online followers

0 Sammy Shark True 987.0

1 Jesse Octopus 0 432.0

2 0 0 False 321.0

3 Jamie Mantis shrimp True 0.0

现在我们所有的列和行都是完整的,而不是像我们的值NaN一样,我们现在已经用0填充了这些空格。您会注意到在适当的时候使用浮动。

此时,您可以对数据进行排序,进行统计分析以及处理DataFrame中的缺失值。

结论

本教程介绍了使用pandasPython 3 进行数据分析的介绍性信息。您现在应该已经安装pandas,并且可以使用pandas中的Series和DataFrames数据结构。

想要了解更多关于安装pandas包和使用数据结构的相关教程,请前往腾讯云+社区学习更多知识。参考文献:《How To Install the pandas Package and Work with Data Structures in Python 3》

python怎么安装pandas模块-如何在Python 3中安装pandas包和使用数据结构相关推荐

  1. linux系统怎么安装office软件,如何在Linux系统中安装OpenOffice

    Linux系统比如说Ubuntu或Linux Mint中是主要的办公软件,有些版本的系统中集成了这款软件,但是有些系统没有.所以下面就来给大家介绍一下,如何在Linux系统中安装OpenOffice. ...

  2. centos安装mysql wsl_如何在 Windows 10 中安装 WSL2 的 Linux 子系统

    什么是WSL? Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具.实用工 ...

  3. 在vm中安装linux虚拟机,如何在vm虚拟机中安装linux

    1.首先在vm中新建一个虚拟机 2.选择典型 3.点击稍后安装操作系统 4.选择安装linux,版本可以选择centOS64位的,根据自己系统的位数选择即可 5.选择安装路径,建议装在其他盘,..反正 ...

  4. 在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python

    这里将告诉您Python原来这么好学-1.2节: 在Linux中安装python,具体操作过程:在Linux系统的主要发行版中,按其软件包格式来进行划分,可分为Deb系以及RPM系操作系统.Linux ...

  5. python获取当前时间戳_如何在Python中获取当前时间戳?

    在Python中可以使用来自模块time.datetime或calendar的函数来获取当前时间戳,代码语句如[import time;ts = time.time() print(ts)]. 在Py ...

  6. python输出当前时间戳_如何在Python中获取当前时间戳?

    在Python中,有多种方法可以获得当前时间戳.如果希望在Python中获得时间戳,可以使用来自模块time.datetime或calendar的函数. 使用模块time 模块time是提供各种与时间 ...

  7. matlab yalmip安装教程,如何在matlab路径中安装yalmip Matlab R2014a添加yalmip图文教程

    yalmip是什么?可以说,yalmip是一位"集大成者",它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划).bintprog(二值线性规划).bnb(分支界定 ...

  8. ubuntu安装mysql_如何在Ubuntu14.04中安装mysql

    原标题:如何在Ubuntu14.04中安装mysql 接触过MySQL的小伙伴们都知道,在Windows下安装MySQL是一件让人十分头大的事情,但是在Ubuntu等其他Linux系统中安装MySQL ...

  9. linux系统可以装win10吗,如何在Win10专业版中安装Linux系统?

    如何在Win10专业版中安装Linux系统?在Windows10 第3个稳定版发布以后,支持内嵌的Linux系统,正如大家所知道的,大多数 Linux 上的命令行二进制程序现在可以原生地运行在 Win ...

最新文章

  1. javascript 代码_如何使您JavaScript代码保持简单并提高其可读性
  2. NSUserDefaults 简介
  3. 2017年10月21日普及组 排名
  4. VTK:图片之ImageContinuousErode3D
  5. Java扑克牌(斗地主发牌)
  6. 深入理解C语言变量和内存——整理篇
  7. 野火Linux开发板接入华为云,Huawei_LiteOS——STM32F1移植(野火开发板)
  8. Java基础面试16问
  9. 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作
  10. ubuntu上wordpress安装的前置工作
  11. 自定义相册、九宫格显示图片
  12. linux创建目录的语句,Linux的 文件 和 目录 管理(基本语句)
  13. 博客系统如何随机插入大量文章数据
  14. HDOJ 1036 Average is not Fast Enough!
  15. 年轻人的第一套租房?小米成立新公司或涉房屋租赁业务
  16. Mac OS X 安装ruby环境
  17. Item 16: Avoid Creating Unnecessary Objects(Effective C#)
  18. 学习matlab(十四)——GUI
  19. 清华大学计算机2021研究生录取分数线,清华大学2021年研究生录取分数线多少分...
  20. cute-cnblogs 自定义博客园样式美化二期来啦~

热门文章

  1. Codeforces.809E.Surprise me!(莫比乌斯反演 虚树)
  2. 跳石头 NOIP2015 提高组 Day2 T1
  3. Go -- 多个go文件包名都是main
  4. 使用Struts2防止表单重复提交
  5. C++ Primer 第三章 字符串、向量和数组
  6. 关于fseek和文件ab+打开方式的问题
  7. 设计模式之Prototype(原型)(转)
  8. python官网下载安装教程-Python和Anoconda和Pycharm安装教程
  9. 零基础学python 明日科技-明日科技 - 课程
  10. python一次性读取整个文件-Python逐行读取文件内容