数据合并技巧:Python中的数据帧合并

作为一名数据科学家,可能会在项目中遇到需要从多个数据源收集数据的情况。在开始探索和建模之前,首先需要将这些数据集合并(以表格、数据帧等形式)。本文将介绍如何在不丢失任何信息的情况下完成这一任务。

虽然这听起来是一个简单的场景,但对于许多新手来说可能会感到有些畏惧,尤其是那些不熟悉Python编程的人。可以将这个问题大致分为两种情况:

第一种情况是,具有相似属性的数据可能分布在多个文件中。例如,假设被提供了多个文件,每个文件都存储了一年中特定一周的销售信息。因此,将拥有52个文件来覆盖整个年份。每个文件将具有相同数量和名称的列。

第二种情况是,可能需要从多个来源合并信息。例如,假设想要获取购买产品的人的联系信息。这里有两个文件——第一个包含销售信息,第二个包含客户信息。

本文将展示如何在Python中处理这两种情况,并合并多个数据帧。

理解手头的问题

为了本文的目的,将使用一个流行且易于理解的例子。考虑一个特定学校中的考试情况。有各种科目,每个科目都分配了不同的老师。他们更新自己的文件,关于学生的成绩和整体表现。这里谈论的是多个文件!

在本文中,将使用两个这样的文件来演示Python中函数的工作。第一个文件包含12年级学生的数据,另一个文件包含10年级的数据。还将使用第三个文件,存储学生的名字和学生ID。

注意:虽然这些数据集是从零开始创建的,但鼓励将学到的知识应用到自己选择的数据集上。

合并数据帧的逐步过程

将按照以下步骤来解决这个问题:

  • Python中加载数据集
  • 合并两个相似的数据帧(追加)
  • 从两个数据帧中合并信息(合并)

在本文中,将使用三个不同的数据集。首先,需要将这些文件加载到单独的数据帧中。

# 这里是加载数据集的代码示例

前两个数据帧包含学生的百分比和他们的学生ID。在第一个数据帧中,有10年级学生的分数,而第二个数据帧包含12年级学生的分数。第三个数据帧包含学生的名字和他们各自的学生ID。

# 这里是使用'head'函数检查每个数据帧的前几行的代码示例

让合并10年级和12年级的文件,以找出学生的平均分数。在这里,将使用Pandas库中的'append'函数。

# 这里是使用'append'函数合并数据帧的代码示例

输出:((50,3),(50,3),(100,3))。

如所见,'append'函数将两个数据帧垂直添加。

结果数据帧是allMarks。上述比较了所有三个数据帧的形状。

接下来,让看看'allMarks'的内容并计算平均值。

# 这里是查看'allMarks'内容并计算平均值的代码示例

输出:49.74。

现在,假设想要找到两个批次中排名第一的学生的名字。这里,不需要垂直添加数据帧。

需要水平扩展以添加一列学生的名字。

为此,将找到最高分数:

# 这里是找到最高分数的代码示例

输出:100。

学生获得的最高分数是100。现在,将使用'merge'函数找到这个学生的名字。

# 这里是使用'merge'函数找到学生名字的代码示例

最后,结果数据帧将学生的名字与他们的分数一起映射。

'merge'函数需要一个必要的属性,两个数据帧将根据这个属性进行合并。需要在'on'参数中传递这个列的名称。

'merge'的另一个重要参数是'how'。这指定了想要在数据帧上执行的连接类型。以下是可以执行的不同连接类型(SQL用户对此将非常熟悉):

  • 内连接(如果不提供任何参数,默认执行)
  • 外连接
  • 右连接
  • 左连接

还可以在使用'sort'参数对数据帧进行排序。这些是在合并两个数据帧时最常用的参数。

现在,将查看数据帧中包含100'Exam points'的行:

# 这里是查看包含100分的行的代码示例 。 。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485