结合Pandas中的多个数据集
目录
介绍
连接DataFrames
合并DataFrames
摘要
大多数数据分析不是在单个系统或数据集上进行的,因此在此步骤中,我们着眼于组合多个数据集以提供更大的数据图。
- 下载CSV和数据库文件-127.8 KB
- 下载源代码122.4 KB
介绍
本文是使用Python和Pandas进行数据清洗系列的一部分。它旨在利用数据科学工具和技术来使开发人员快速启动并运行。
如果您想查看本系列的其他文章,可以在这里找到它们:
- 第1部分-介绍Jupyter和Pandas
- 第2部分-将CSV和SQL数据加载到Pandas中
- 第3部分-纠正Pandas中的缺失数据
- 第4部分-合并Pandas中的多个数据集
- 第5部分-清理Pandas DataFrame中的数据
- 第6部分-重塑Pandas DataFrame中的数据
- 第7部分-使用Seaborn和Pandas进行数据可视化
处理所有缺失的值后,让我们合并来自产品、客户和购买数据集的数据,以在单个DataFrame中获得更完整的数据集。这样可以更好地了解我们使用该数据集的方向以及可以利用的总体见解。
请注意,我们已经创建了完整的Jupyter Notebook,其中包含该系列模块的源数据文件,您可以在本文头部下载和安装。
Pandas提供了多种将数据与不同逻辑集组合的方法。在探究我们可能使用的一些更复杂的组合集之前,让我们看一些简单的方法。
连接DataFrames
合并数据的核心功能是concat()。此功能提供了两个DataFrame的简单连接,可以使用类似于传统关系数据库的并集选项或交集逻辑来扩展它们。
- 当列匹配时,concat方法将DataFrames连接在一起。
concat()本身将使用相同的键或“列标题”将两个或多个DataFrame连接在一起,然后将各行推在一起。例如,两个分别具有X,Y,Z列和10行的DataFrame将结合在一起成为具有X,Y,Z列和20行数据的单个DataFrame。
concat函数具有多种用于合并数据的选项,包括但不限于:
- 外部连接将来自两个或多个DataFrame的数据连接起来,并包括没有匹配键的行(结果可能不包含任何值)。
- 内连接仅在两个或多个DataFrame的帧与键匹配的情况下才连接数据(结果可能会删除不匹配的行)。
合并DataFrames
Pandas还提供了一些选项,可以使用一组数据的行作为输入与另一组数据的键进行合并来合并数据集。这种连接和合并形式非常强大,这就是我们要对数据集进行的处理。
- merge方法使用左右连接将DataFrames连接在一起
目前,我们的数据集包括三个独立的数据框架:客户、产品和购买。对于应用程序来说,这很有意义,因为您的产品和客户的变化不会太大,但是您的购买可能每天都在变化。
对于数据分析和可视化,将所有数据都放在一个大的DataFrame中更有意义。因此,我们将把客户和产品数据集合并到购买数据中。
创建一个新的代码块并添加以下内容:
combinedData = pd.merge(purchases, customers, left_on='customer_num', right_on='id', sort=False)
combinedData = pd.merge(combinedData, products, left_on='product_num', right_on='id', sort=False)
我们正在使用Pandas合并功能来合并三个DataFrame。第一次合并将购买的DataFrame合并到客户DataFrame中。
这里我们还使用了两个可选参数,left_on和right_on。这些参数基于left_on键与right_on键匹配的知识(即使键名称不同)合并表。
最后,我们将sort选项指定为false,因为我们还不需要对数据进行排序,这使该方法的执行速度更快一些。
添加以下行以检查我们新的组合DataFrame:
print(combinedData.head(5))
print(combinedData.shape)
print(purchases.shape)
结果如下:
如您所见,我们现在有了一个大的DataFrame,其中包含来自所有三个DataFrame的许多列。
您还将看到,当我们比较purchases DataFrame和结果DataFrame 之间的行数时,我们从6000中减少到5069行。由于merge默认情况下使用内部连接,因此无法与客户匹配的行(因为它们在数据清理的第一阶段已被删除)从合并的DataFrame中删除。
摘要
我们查看了Pandas函数以连接数据集,然后继续将三个DataFrame合并为一个完整的DataFrame,我们可以进一步对其进行操作以呈现数据以进行可视化。
现在,我们将在整理数据以进行可视化之前研究清理可能导致某些问题的最后一个值和键。
结合Pandas中的多个数据集相关推荐
- 纠正Pandas中的缺失数据
目录 介绍 查找丢失的数据元素 使用drop和dropna删除缺少的Pandas列 丢掉丢失的Pandas行 替换值 摘要 将数据加载到灵活的结构后,我们需要确定如何处理丢失和重复的数据元素. 下载C ...
- 将CSV和SQL数据加载到Pandas中
目录 介绍 从CSV加载数据 从SQLite加载数据 基本数据分析 总结 任何数据分析过程的第一步都是摄取数据集,评估数据集的清洁程度,并决定我们需要采取哪些措施来解决继承的问题. 下载CSV和数据库 ...
- 20个经典函数细说 Pandas 中的数据读取与存储,强烈建议收藏
作者 | 俊欣 来源 | 关于数据分析与可视化 大家好,今天小编来为大家介绍几个Pandas读取数据以及保存数据的方法,毕竟我们很多时候需要读取各种形式的数据,以及将我们需要将所做的统计分析保存成特定 ...
- Python—pandas中DataFrame类型数据操作函数
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFram ...
- 独家 | 浅谈Python/Pandas中管道的用法
作者:Gregor Scheithauer博士 翻译:王闯(Chuck)校对:欧阳锦本文约2000字,建议阅读5分钟本文介绍了如何在Python/Pandas中运用管道的概念,以使代码更高效易读. 图 ...
- pandas中的DataFrame数据结构
pd.DataFrame() DataFrame 是一种二维的数据模型,相当于EXcel表格中的数据,有横竖两种坐标,横轴用columns,竖轴用index 来确定,在建立DataFrame 对象的时 ...
- Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
Python之pandas:对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 目录 对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 知识点学习 输 ...
- 【Python】Pandas中的宝藏函数-rank()
所谓的排名,就是一组数据,我们想要知道每一条数据在整体中的名次,需要的是输出名次,并不改变原数据结构. 排序会改变原来的数据结构,且不会返回名次,这一点区别需要弄明白.初学的时候容易弄混淆. 本文将通 ...
- 【Python】Pandas中的宝藏函数-applymap
applymap的用法比较简单,会对DataFrame中的每个单元格执行指定函数的操作,虽然用途不如apply广泛,但在某些场合下还是非常有用的. applymap()是与map()方法相对应的专属于 ...
最新文章
- 550 万华人在美人才现状:7 诺奖、300 院士,320 八大常春藤高校终身正教授......
- mysql顺序结构_MySQL学习之流程结构
- Python之初识函数
- 陪伴程序员的一条龙、一骑士 36 岁了!
- SpringMVC学习(四)——Spring使用到的设计模式分析
- php 检查字符串类型,PHP之字符串类型与检验
- 使用BIND安装智能DNS服务器(一)---基本的主从DNS服务器搭建
- 信息系统项目管理基础(1)
- 开发基于vue前端框架下的系统的UI自动化,记录总结踩的坑
- jQuery学习(一)—jQuery应用步骤以及ready事件和load事件的区别
- Python核心编程读笔 4
- 拓端tecdat|R语言回归中的Hosmer-Lemeshow拟合优度检验
- LayaAir graphics 矢量绘图之 圆形与扇形
- ab plc编程软件计算机语言,AB plc-Rslogix5000 software 软件编程实例.pdf
- python的画图工具,Python画图工具matplotlib的安装
- edge浏览器被毒霸导航锁定如何解除
- 9个你可能最想了解的关于微信指数的问题
- linux 查看 man 路径配置文件 man.config,linux man 1,2,3....
- 微信多开服务器,PC端微信多开
- adi翻译_ADI是什么意思_ADI的翻译_音标_读音_用法_例句_爱词霸在线词典
热门文章
- idea卸载不干净怎么办_家里拖地老是不干净怎么办,来跟我学!
- java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
- subd计算机系统结构,计算机体系结构第2章试题答案.doc
- 新冠状病毒显微放大品质背景,让你做相关项目更具专业性。
- PNG免扣素材|圣诞树海报素材,元素很多哦!
- UI设计师如何正确打开暗黑模式|实用素材拿走
- 优秀的设计UI界面按钮素材,让点击率飙升
- java 安全策略,编程式安全策略配置
- tlc5620输出三角波流程图_[笔记].串型DAC TLC5620生成锯齿波、三角波实验,Verilog版本...
- CAS:compare and swap