Press "Enter" to skip to content

解锁Pandas的力量:深入研究.loc和.iloc

使用Pandas进行数据分析:精确数据选择的.loc和.iloc的掌握

在Leonardoai中创建

Python编程语言由于其用户友好性和强大的库,在数据科学和分析中是一项重要的资产。其中之一就是Pandas,它提供了灵活而强大的数据处理工具,因此成为全球数据科学家的首选。

在数据分析的过程中,高效地管理和操作数据是关键,而这正是Pandas的优势所在。在Pandas提供的各种工具中,有三个方法因其多功能性而脱颖而出:loc、iloc和ix。

这些方法对于Pandas中的数据选择至关重要,为用户在Pandas DataFrame中访问和修改数据提供了非凡的灵活性。

数据选择是数据分析的重要步骤,涉及从数据集中选择特定数据以进行分析、可视化或机器学习算法输入。

为什么要使用loc、iloc或ix?

通常,数据科学家只需要整个数据集的一部分。这就是loc、iloc和ix方法的宝贵之处,它们根据DataFrame的位置或特定条件实现了高效的数据选择。

本文旨在深入探讨这三个关键的Pandas方法,讨论它们的用例和细节。

我们将使用预构建的数据集,以便您可以复现相同的代码,目标是让您具备使用Pandas在Python中操作和浏览任何数据集的知识和信心。

如果您想了解更多关于Pandas方法的内容,这里为您提供了17个Pandas技巧。如果您觉得懒得编写代码,想要编写提示而不是代码,您还可以使用PandaSAI。

准备好了吗?让我们开始探索吧。

理解Pandas中的数据选择

数据选择的过程是任何数据分析或数据科学任务的基础性方面。

在分析数据、可视化或使其适用于机器学习算法之前,我们应该首先从较大的数据集中选择我们需要的数据。

如果没有选择和处理部分数据,算法的工作速度会变得非常慢,或者我们可能会删除实际上很重要的数据。

Pandas中的数据选择不仅仅是选择一列或一行,它涉及根据特定条件选择特定的数据子集。在Pandas中,我们经常使用数据框(dataframe),它们是类似表格的数据结构,包含行和列。

数据框中的行表示不同的观测值,而列表示各种特征或变量。Pandas的多功能性主要来自其强大的数据选择方法,它们允许我们根据需要快速地隔离这些数据框的特定部分。

理解数据选择非常重要,因为它将给我们一个机会来探索和了解数据。

通过使用正确的技术,我们可以收集所需的数据,无论是根据特定条件选择特定的行,还是选择一组列,这对于我们的分析非常重要。

Python中的数据选择方法

在Pandas中,有三种主要的数据选择方法:loc、iloc和ix。每种方法都有其自身的优势,并且具有特定的用例。

loc方法用于基于标签的数据选择,iloc用于基于整数的选择,而ix是一种更通用的方法,支持基于标签和整数的选择。

这些方法可以以不同的方式从数据帧中选择数据。

在接下来的章节中,我们将通过使用预构建的数据集详细探讨这些方法。

这将使您在使用pandas进行数据选择方面具备扎实的知识,这是成为熟练的数据分析师或科学家的重要步骤。

因此,让我们从下一节中的loc方法开始深入研究这些选择方法。

使用loc进行数据选择

loc方法是Pandas库中的一个强大工具,用于基于标签的数据选择。它允许我们使用索引或列名的实际标签来选择数据,因此使用起来非常直观。

为了了解loc的工作原理,我们将利用seaborn库中的一个内置数据集:’titanic’数据集。该数据集包含了泰坦尼克号航行中的乘客数据,包括每位乘客的年龄、性别、票价以及是否幸存于沉船事件。通过使用loc方法,我们可以深入研究这个数据集并迅速提取有见地的信息。

让我们从导入必要的库和加载数据开始。

import seaborn as snsimport pandas as pd# 从seaborn加载'titanic'数据集titanic = sns.load_dataset('titanic')# 显示数据的前几行titanic.head()
Output — Image by Author

现在,让我们利用loc方法。一个loc命令的格式如下:dataframe.loc[rows, columns]

假设我们想选择数据帧中的第一个乘客。

我们可以通过指定索引标签来实现,这里的索引标签是0。

这是代码。

# 选择第一行和所有列first_passenger = titanic.loc[0, :]print(first_passenger)

这是输出结果。

First Row of the titanic dataset — Image by Author

这种灵活性不仅限于选择行。我们还可以选择特定的列。假设我们只对前三位乘客的’age’和’fare’感兴趣。以下是我们如何使用loc选择这些数据:

# 选择前三行和特定列first_three_passengers_data = titanic.loc[[0, 1, 2], ['age', 'fare']]print(first_three_passengers_data)

这是输出结果。

First three rows with age and fare columns — Image by Author

这只是揭示了loc方法的一部分功能。它还可以处理布尔条件,使我们能够选择满足特定条件的行。假设我们想找到所有年龄低于18岁的乘客。使用loc可以很容易地实现。

# 选择所有年龄低于18岁的乘客under_18_passengers = titanic.loc[titanic['age'] < 18, :]under_18_passengers

这是输出结果。

The passengers under 18 years old — Image by Author

方法loc具有多功能、直观和有效的特点,可以根据标签选择数据。然而,有时我们需要根据位置选择数据,而不是根据标签。这就是iloc方法的作用,我们将在下一节中探讨它。

使用iloc进行数据选择

虽然loc是基于标签选择的强大工具,但Pandas还提供了纯整数位置选择的iloc方法。iloc方法允许您通过指定它们的整数位置来访问DataFrame的行和列。

让我们继续探索“泰坦尼克”数据集。使用iloc,我们可以根据整数位置选择特定的行或列,而不考虑索引标签或列名。

iloc的语法与loc非常相似:dataframe.iloc[rows, columns]。不同之处在于您如何指定行和列。使用iloc时,您使用整数位置,而不是标签。

例如,让我们选择DataFrame的第一行(即第0个位置):

# 选择第一行和所有列
first_row = titanic.iloc[0, :]
print(first_row)

这是输出。

First row and all columns — Image by Author

iloc还可以帮助您一次选择多个行或列。

例如,如果您想选择前三行和第1个(第0个索引位置)和第4个(第3个索引位置)位置的列,则可以执行以下操作:

# 选择前三行和特定列
selected_data = titanic.iloc[0:3, [0, 3]]
print(selected_data)

这是输出。

First three rows age and survived status — Image by Author

请注意,在使用iloc进行切片时,起始边界是包含的,但停止边界是不包含的,与使用loc进行基于标签的切片不同。因此,0:3选择的是整数位置为0、1和2的行。

还要注意,与loc不同,iloc可以使用负索引。这意味着您可以使用-1作为索引来选择最后一行或列:

# 选择最后一行和所有列
last_row = titanic.iloc[-1, :]
print(last_row)

这是输出。

Last row and all columns — Image by Author

lociloc之间,您可以灵活地选择DataFrame中的数据。您可以选择基于标签、整数位置或两者的混合选择。了解何时以及如何使用这些函数可以极大地增强您的数据操作技能。然而,Pandas不仅仅有这两个函数。在下一节中,我们将介绍另一种数据选择方法——atiat方法。

使用atiat进行更快的访问

尽管 lociloc 无疑是数据选择的强大工具;但有时,当处理大型数据集时,您需要一种更快的方法。这就是 atiat 的用武之地。与 lociloc 相比,atiat 提供更快的数据访问速度。

这种速度的代价是,atiat 一次只能访问一个值。它们用于获取或设置DataFrame或Series中的单个值,不能用于布尔索引或同时访问多个值。

让我们看看它们的实际应用。继续使用我们的“泰坦尼克”数据集,假设我们想快速访问第一行乘客的“票价”:

# 使用 `at`fare_at = titanic.at[0, 'fare']print(fare_at)# 使用 `iat`fare_iat = titanic.iat[0, 8]print(fare_iat)
第一个标签中的票价

在第一个示例中,at 用于基于标签索引(在本例中为0)访问“票价”值。

在第二个示例中,iat 用于基于行中的整数位置(8)访问“票价”值。

现在,我们已经介绍了Pandas中所有这些数据选择方法,让我们总结一下它们的使用最佳实践。这将有助于确保在处理数据集时选择正确的工具。

最后的话

理解 locilocatiat 将显著提高您在Pandas中处理数据时的效率和效果。

这些方法为数据选择提供了灵活和强大的选择,使您能够处理几乎任何可能遇到的数据选择任务。

继续使用这些工具进行练习,您很快就会成为Pandas专家。

感谢阅读我的文章。

这是我的 关于人工智能和数据科学的每日通讯

这是我的 NumPy速查表

这是“ 如何成为亿万富翁 ”数据项目的源代码。

这是“ 使用Python进行6种不同算法的分类任务 ”数据项目的源代码。

这是“ 能源效率分析中的决策树 ”数据项目的源代码。

这是“ DataDrivenInvestor 2022文章分析 ”数据项目的源代码。

如果您还不是VoAGI会员,想通过阅读扩展您的知识,这是我的推荐 链接。

这是我的电子书: 如何通过ChatGPT学习机器学习?

“机器学习是人类所需的最后一个发明。” 尼克·博斯特罗姆

Leave a Reply

Your email address will not be published. Required fields are marked *