Pandas教程:Python数据框架的10个常见问题

本文是Pandas教程,解答了使用Python数据分析库Pandas时遇到的10个常见问题,包括数据切片、列重命名、合并、类型转换、分组计算、迭代行、条件选择、列顺序调整、数据清理等操作。
摘要由CSDN通过智能技术生成

PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。PyCharm现已加入在线订购,点击此处了解价格详情

点击下载PyCharm最新试用版

Pandas教程:Python数据框架的10个常见问题

当您开始使用Python进行数据分析和数据科学时,Pandas是您将学习的第一个库之一。其可帮助您处理数据集,转换和清理数据以及获取统计信息。

Pandas教程:有关Python数据帧的10个常见问题

在本教程中,我们将回答人们在使用熊猫时遇到的10个最常见的问题。

数据集

在本教程的第一部分中,我们将使用包含城市人口样本数据以及有关土地面积和人口密度的一些信息的数据集。

Pandas Loc和iloc

pandas.loc[] 有助于通过标签或布尔数组切片访问一组行和列。

让我们选择墨西哥城的人口。

下面我们仅打印墨西哥城的人口。

使用,.iloc[]您可以使用数字整数索引选择列。

请记住以下几点:

  • 平原:用于选择行/列中的所有数据。
  • 0:2 将选择行/列0和1。不包括2。
  • -1 将选择最后一个元素。

重命名列

接下来,我们将重命名这些列,以使它们将来更易于访问。

有几种方法可以做到这一点:

  • 直接分配df.columns一个列名称数组。
  • 用df.rename重命名特定列。

在pandas DataFrame中选择多个列

让我们将DataFrame分为两个包含以下内容的DataFrame:

  1. 城市,国家和人口。
  2. 城市,区域和密度。

我们可以通过几种方式做到这一点:

  • 通过使用.iloc[:, 0:3],其中括号中的第一个参数选择所有行,第二个参数选择列0,列1和列2。
  • 通过将DataFrame切片为double[]并输入要选择的列名。

熊猫按列合并两个表

接下来,我们将垂直连接我们创建的两个表。这些表具有相同的City列,因此我们将使用该pd.merge函数来连接两个表。

该left_on和right_on参数指示列名在第一和第二个表合并上。

使用pandas更改pandas中的列类型

与数据帧的工作进一步,我们需要转变Population,Area以及Density从字符串列转换为数字。

为此,我们将:

  1. 创建一个函数,to_int()它将带有','符号的字符串转换为整数。
  2. 将apply函数与lambda表达式一起使用。

分组并变成一个DataFrame

现在,让我们对DataFrame进行分组,Country并计算此数据样本中每个国家/地区的人口。
困难之pd.groupby处在于它返回一个groupby对象,而不是DataFrame。在下面的示例中,我们将展示如何从groupby对象创建DataFrame。

我们将对进行分组Country,同时计算Population和Area列的总和。我们将删除密度列,因为我们不再需要它。

如何在Pandas中的DataFrame中的行上进行迭代

尽管遍历行可能不是最快的解决方案,但有时仍然可以派上用场。您可以使用循环.iterrows()功能来做到这一点。

考虑尝试对applyPandas DataFrame的函数或向量化表示执行相同的操作。在大型数据集上,这将提高计算速度。

在下面,我们将Population列除以1000,并以千为单位获得人口数。下面有3个替代代码示例。

如何根据列值从DataFrame中选择行

让我们选择人口超过1000万人,面积不到2000平方公里的国家。
您可以通过在中输入逻辑约束来做到这一点[]。

如何更改DataFrame列的顺序

您可以简单地通过以不同顺序切片现有的DataFrame来做到这一点。

用Pandas清理数据

要开始使用数据,您需要清理数据。

首先的基本步骤是:

  • 在DataFrame中删除重复项。
  • 用有意义的值填充空单元格,或用很多空值删除列。
  • 获取有关列值的统计信息。

让我们下载带有网球比赛结果的数据集。

我们将降大任于重复使用pd.drop_duplicates,以inplace = True将更改应用到数据帧。

现在,让我们找出DataFrame中是否存在NaN值。

df.isna().any() 当该列包含NaN值时为True。

在此minutes列中,我们具有91%的NaN值,因此将其删除,因为它不包含任何有用的信息。

在winner_age,loser_age,loser_rank,和winner_rank列没有太多的NaN值,所以我们会用中位数代替NaN值。

  

有了df.describe我们,我们可以获得有关数字列数据的统计信息。

这就是我们的Pandas教程。你学会了吗?立即下载体验吧!您有任何疑问或意见欢迎评论!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值