如何在Python中加入多个数据帧?

开发 后端
你正在处理一个从多个源收集数据的项目。在进入探索和模型构建部分之前,你需要首先连接这些多个数据集(以表、数据帧等形式)。怎么能做到这一点而不丢失任何信息?

初学Python编程的人,面临的是各种未知的挑战。

下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景:

你正在处理一个从多个源收集数据的项目。在进入探索和模型构建部分之前,你需要首先连接这些多个数据集(以表、数据帧等形式)。怎么能做到这一点而不丢失任何信息?

这听起来可能是一个简单的场景,但对于许多新来的人来说,这可能是一个威胁,特别是那些不熟悉Python编程的人。

​如何在Python中加入多个数据帧?

进一步深入研究,我可以大致将其分为两种情况:

  • 首先,具有相似属性的数据可以分布到多个文件中。例如,假设向你提供了多个文件,每个文件都存储一年中某一周内发生的销售信息。因此,全年将有52个文件。每个文件的列数和名称都相同。
  • 其次,你可能需要合并来自多个来源的信息。例如,假设你想获得购买产品的人的联系信息。这里有两个文件,第一个有销售信息,第二个有客户信息。

理解手头的问题

本文列举一个通俗易懂的例子。

想一下在一个特定的学校里考试。每个科目都有不同的老师授课。他们更新关于学生成绩和整体表现的档案。这些档案就是多个文件!

本文使用创建的两个这样的文件来演示Python中函数的工作。第一个文件包含关于12班学生的数据,另一个文件包含10班的数据。还将使用第三个文件来存储学生的姓名和学生ID。

注意:虽然这些数据集是从零开始创建的,但鼓励将所学应用于选择的数据集。

在Python中逐步合并数据帧的过程

下面是解决这个问题的方法:

  • 用Python加载数据集
  • 合并两个相似的数据帧(append)
  • 合并来自两个数据帧的信息(merge)

步骤1:用Python加载数据集

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

  1. import pandas as pd 
  1. marks10th=pd.read_csv('10thClassMarks.csv') 
  1. marks12th=pd.read_csv('12thClassMarks.csv') 
  1. IDandName=pd.read_csv('StudentIDandName.csv') 

前两个数据框包含学生的百分比及其学生ID。在第一个数据框中,有10班学生的分数,而第二个数据框包含第12个标准中学生的分数。第三个数据框包含学生的姓名以及各自的学生ID。

[[315918]]

来源:btime

使用“head”函数检查每个数据帧的前几行:

  1. marks10th.head() 
  1. marks12th.head() 
  1. IDandName.head() 

​如何在Python中加入多个数据帧?

步骤2:合并两个相似的数据帧(Append)

把10、12班的档案合并起来,找出学生的平均分。这里使用Pandas库中的“append”函数:

  1. allMarks=marks10th.append(marks12th) 
  1. marks10th.shape, marks12th.shape, allMarks.shape 

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

从输出中可以看到,在append函数中垂直添加两个数据帧。

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

接下来看看“allMarks”的内容并计算平均值:

​如何在Python中加入多个数据帧?

  1. allMarks['Exam Points'].mean() #Average Marks 

输出:49.74

步骤3:合并来自两个数据帧的信息(Merge)

现在,假设想找出在这两个批次中排名第一的学生的名字。这里不需要垂直添加数据帧。为了给学生的名字再加一列,我们将不得不水平缩放。

要做到这一点,我们会发现最高得分:

  1. allMarks['Exam Points'].max() # Maximum Marks 

输出:100

学生的最高成绩是100分。现在,使用“merge”函数查找此学生的姓名:

  1. mergedData=allMarks.merge(IDandName, on='student id'
  1. mergedData.head() 

​如何在Python中加入多个数据帧?

最后,生成的数据框有学生的名字和他们的标记。

merge函数需要一个必要的属性,两个数据帧将在该属性上合并。需要传递此列的名称在“on”参数中。

merge函数的另一个重要论点是“如何”。这指定要在数据帧上执行的联接类型。以下是可以执行的不同连接类型(SQL用户将非常熟悉这一点):

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

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

[[315919]]

来源:Pexels

现在,我们将看到数据框包含100个“检查点”的行:

  1. mergedData.loc[mergedData['Exam Points']==100] 

​如何在Python中加入多个数据帧?

三个学生得了100分,其中两个在10班。做得好!

接下来,我的建议是接受包含3个不同文件的食物预测挑战。

很直截了当,对吧?

你再也不必为此而自责了!你可以继续并将其应用于选择的任何数据集。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2013-04-02 15:23:12

2009-11-24 19:33:07

PHP字符串中加入变量

2013-11-13 09:22:16

2011-03-02 17:41:28

2011-03-18 09:48:32

2024-01-30 15:29:20

Django数据库Python

2017-02-08 21:20:24

LinuxUbuntu加密硬盘

2009-06-29 09:44:07

Smooth StreSilverlight

2022-09-26 08:35:53

磁盘Java解密

2024-03-25 00:02:00

Android移动开发视频

2020-05-19 13:55:38

Python加密密码

2013-03-19 10:17:59

云计算谷歌BigQuery

2011-03-24 16:01:30

数据库管理

2011-10-13 16:34:30

MeeGoQt插件

2020-07-01 16:45:13

matplotlib内嵌图Python

2012-11-30 16:02:57

在vSphereiSCSI存储虚拟化

2009-07-02 09:35:02

hibernate访问

2020-05-25 17:40:00

MacpyenvPython

2015-08-05 09:40:26

2018-05-04 09:32:32

Linux快速监控rwho
点赞
收藏

51CTO技术栈公众号