不精通Python就可以作为数据专业人员工作的日子已经一去不复返了。在Python的数据分析生态系统中最主要的是pandas库,它为探索和操作数据提供了有效和直观的方法。在本熊猫教程中,我们将介绍一些最常见的熊猫操作。

关于熊猫

熊猫是最流行的Python库之一。它的名字是“”的合成词。面板数据,“多维数据集的另一个术语。WES McKinney是熊猫背后的男人,设计了自动化重复数据预处理任务。今天,熊猫不仅仅是一个数据操纵库;它允许Python.程序员有效地执行分析并从其数据创建可视化。

本pandas教程提供了一些最常见的数据操作任务的介绍,而无需使用复杂的文档和技术术语。

熊猫的基本面

要使用熊猫,我们通常将其导入如下:

我们坚持这种约定是为了避免调用pandas方法时出现错误,因为这些方法与Python的内置函数具有相同的名称。通过将pandas导入为pd,我们还将pandas方法调用的前缀加上pd,从而区分两个相同的函数调用。

以下两部分描述了两个基本的pandas数据结构:Series和DataFrames。

Python系列

Series是一维对象,其结构类似于数组。它能够存储任何数据类型,可以是数值对象、字符串、列表或自定义Python对象。

创建Series对象的最简单方法是向pandas Series方法调用提供一个可迭代的数据。在下面的例子中,我们从国家名称列表中创建了一个Series对象。

默认情况下,pandas给Series对象分配整数索引。但是,可以通过将该列表赋值给属性来指定定制索引的列表指数关键字在系列方法调用。在下一个示例中,我们用国家代码列表替换默认整数索引。请注意,两个列表中元素的顺序很重要,因为列表中的元素之间存在一对一的对应关系。

我们也可以指定一个索引或索引列表来访问一个特定的元素或一个系列元素的子集:

我们也可以从a构造一个级数Python字典。在这种情况下,生成的系列对象将在字典的键上呈现为其索引。下面的代码片段说明了这种方法。

Python的熊猫库是基于的numpy.它的许多操作也适用于熊猫物品:

对于更全面的Numpy和Pandas操作列表,请查看我们的Python数据分析备忘单

python dataframe.

DataFrame是一种二维对象,它以表格格式存储数据,即行和列。您可以将pandas数据堆视为具有相同索引的水平堆叠的序列对象。

从划痕创建Dataframe的最常用方式是通过从字典构建它。生成的dataframe的列对应于字典的键,而行对应于其值。值通常在数组类似的对象中。

我们用于构建DataFrame存储值的字典为阶层对象;这是因为在引擎盖下,系列只是numpy阵列。请注意,country_series和pandsper_series必须具有相同的索引。

熊猫的操作

读写数据

我们更常常想从划痕中创建DataFrame,而不是从头开始读取数据。Python和Pandas提供了许多简化过程的方法。例如,它需要一个方法调用,将.csv文件读取到dataframe:

以下是用于从磁盘读取数据的其他一些常用方法:

存在导出数据的等效方法:

数据探索

一旦我们将数据导入到数据架构中,我们就会想要研究它。数据探索是处理数据的关键步骤,因为它帮助我们发现问题,并指导分析的方向。Pandas提供了许多快速数据探索的方法。例如,我们可以使用shape属性来确定数据集的形状:

我们的数据集由12行和3列组成。

显示关于数据流的描述性统计信息通常很有用。在DataFrame上调用describe()方法将返回所有数值列的平均值、标准差和四分位数范围等信息。

info()提供了关于DataFrame的列、数据类型、非空值和内存使用情况的有用信息。

直观地检查数据也很重要。head()和tail()方法分别显示数据流的顶部行和底部行。

head()和tail()默认情况下打印5行,但是我们可以在方法调用中指定不同的数字。

访问数据架构中的数据

我们可以通过在DataFrame的名称后面的方括号中指定列的名称来访问DataFrame的列:

要访问DataFrame的一个子集,我们可以用列名列表为它建立索引:

我们可以对一个列应用不同的NumPy操作,因为检索一个列将返回一个Series对象。

要访问DataFrame的行,我们指定ILOC属性中的行的索引。

我们可以通过指定行和列来访问特定值:

使用这种语法,我们可以给数据游戏赋一个新值。

插入数据

将新列添加到现有的Python DataFrame有很多方法。最简单的方法是使用新列的期望名称访问DataFrame - 就像我们访问字典一样,并使用赋值运算符将包含新值的列表分配。

在下面的示例中,我们创建一个列表,如果国家/地区的人口大于3亿且False否则,则将此信息保存到DataFrame中的新列中:

我们可以打印DataFrame中存在的所有列的名称,以确保已添加新列:

在DataFrame中插入新行的一种方法是使用append()方法。append()接受一个包含键和值的字典,并通过将字典的键与DataFrame的列名匹配来添加这些值:

注意,append()方法是不可变的,这意味着append()返回一个修改后的副本,而不是更改现有的数据文件。因此,如果我们希望保留更改,就需要将输出分配回country_df。我们可以通过索引DataFrame的最后一个元素来检查行是否已经添加:

处理缺失数据

您可能已经注意到,我们的Python DataFrame的值为尼日利亚人口的NaN。南代表不是一个数字我们使用它来指示缺少数据。由于数据集通常包含缺失的数据,因此Pandas提供了处理这些方案尽可能无痛的工具。

我们可以使用isna()方法来检查缺少的数据。isna()返回一个布尔值数组,对有缺失数据的行存储True,对没有缺失数据的行存储False。使用布尔数组访问DataFrame只返回布尔数组中值为True的DataFrame行,即包含缺失数据的行。看看这个例子:

布尔索引是有用的,因为它允许我们访问缺失的值并更改它们。以下是语法的相关示例:

或者,我们可以调用dropna()方法来删除缺少值的行:

注意更新的DataFrame没有第七行。提供inplace = true到方法调用修改现有的DataFrame。当到位设置为false时,它是默认情况,dropna()返回dataframe的修改后副本,要求我们将此副本分配给变量。

了解更多

在本Python熊猫教程中,我们介绍了Python的熊猫库的基础知识。在您成为Python程序员的道路上,您将学到更多的东西。开始你的Web和应用程序开发的职业生涯,机器学习数据科学AI.通过我们的纳米编程导论188金宝搏安不安全

开始学习