
本文档详细介绍了如何使用 Pandas 库基于多个列来合并两个 DataFrames。我们将探讨使用 `merge` 函数的不同方法,包括处理缺失值和排序结果,以生成满足特定需求的合并数据集。通过学习本文,你将掌握高效的数据合并技巧,为后续的数据分析和处理打下坚实基础。
在数据分析和处理中,经常需要将来自不同来源的数据集合并成一个统一的数据集。Pandas 库提供了强大的 merge 函数,可以根据一个或多个列将两个 DataFrames 连接起来。本文将详细介绍如何使用 merge 函数,并提供一些实用的技巧和示例。
最直接的方法是使用 pandas.merge 函数执行外连接(outer join)。外连接会保留两个 DataFrame 中的所有行,并在缺失值的地方填充 NaN。为了区分左右 DataFrame 的列名,我们可以使用 add_suffix 函数为列名添加后缀。
import pandas as pd
# 示例数据
df1 = pd.DataFrame({
'level': ['Level 0', 'Level 1', 'Level 1', 'Level 1', 'Level 2', 'Level 2', 'Level 3'],
'title': ['Effective', 'Evaluation', 'Ice Breaker', 'Fire', 'Introduction', 'Understanding', 'Connect']
})
df2 = pd.DataFrame({
'level': ['Level 0', 'Level 1', 'Level 1', 'Level 2', 'Level 2', 'Level 4'],
'title': ['Effective', 'Evaluation', 'Comedy', 'Introduction', 'Understanding', 'Connect']
})
# 使用 merge 进行外连接,并添加后缀
out = df1.merge(df2.add_suffix('_'), how='outer',
left_on=['level', 'title'],
right_on=['level_', 'title_'])
print(out)输出结果如下:
level title level_ title_ 0 Level 0 Effective Level 0 Effective 1 Level 1 Evaluation Level 1 Evaluation 2 Level 1 Ice Breaker NaN NaN 3 Level 1 Fire NaN NaN 4 Level 2 Introduction Level 2 Introduction 5 Level 2 Understanding Level 2 Understanding 6 Level 3 Connect NaN NaN 7 NaN NaN Level 1 Comedy 8 NaN NaN Level 4 Connect
如果需要对合并后的结果进行排序,可以使用 sort_values 函数。在这种情况下,我们不需要手动添加后缀,可以直接在 left_on 和 right_on 参数中指定要合并的列。
Zyro AI Background Remover
Zyro推出的AI图片背景移除工具
145
查看详情
import pandas as pd
# 示例数据
df1 = pd.DataFrame({
'level':
['Level 0', 'Level 1', 'Level 1', 'Level 1', 'Level 2', 'Level 2', 'Level 3'],
'title': ['Effective', 'Evaluation', 'Ice Breaker', 'Fire', 'Introduction', 'Understanding', 'Connect']
})
df2 = pd.DataFrame({
'level': ['Level 0', 'Level 1', 'Level 1', 'Level 2', 'Level 2', 'Level 4'],
'title': ['Effective', 'Evaluation', 'Comedy', 'Introduction', 'Understanding', 'Connect']
})
# 使用 merge 进行外连接,并排序
out = (df1.merge(df2, how='outer',
left_on=[df1['level'], df1['title']],
right_on=['level', 'title'])
.sort_values(by=['level'])
)
print(out)输出结果如下:
level title level_x title_x level_y title_y 0 Level 0 Effective Level 0 Effective Level 0 Effective 1 Level 1 Evaluation Level 1 Evaluation Level 1 Evaluation 2 Level 1 Ice Breaker Level 1 Ice Breaker NaN NaN 3 Level 1 Fire Level 1 Fire NaN NaN 7 Level 1 Comedy NaN NaN Level 1 Comedy 4 Level 2 Introduction Level 2 Introduction Level 2 Introduction 5 Level 2 Understanding Level 2 Understanding Level 2 Understanding 6 Level 3 Connect Level 3 Connect NaN NaN 8 Level 4 Connect NaN NaN Level 4 Connect
如果需要删除重复的列,可以取消注释代码中的 .drop(columns=['level', 'title']) 行。这将删除用于合并的原始列,只保留带有后缀的列。
本文介绍了如何使用 Pandas 库基于多个列来合并两个 DataFrames。通过掌握 merge 函数的不同用法,可以灵活地处理各种数据合并场景。在实际应用中,需要根据具体的需求选择合适的合并方式和参数,并注意数据类型和性能优化等问题。
以上就是基于多列合并 Pandas DataFrames 的实用指南的详细内容,更多请关注其它相关文章!
相关文章:
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】
精准捕获:如何在页面中监听除特定元素外的所有点击事件
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
Go调试环境为何无法启动_Go调试器启动失败原因与解决策略
c++中的std::forward_list和std::list有什么不同_c++ forward_list与list区别分析
HTML长属性值处理:表单action路径优化与代码规范应对
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
学习通网页版快速入口 学习通官网网页版直接打开
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
uc浏览器网页版入口 uc浏览器网页版最新网址
解决Django多数据库/多Schema环境下外键迁移问题
曝R星经典之作开发图 设计简陋但信息密集!
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
内存检查:在VS Code中调试C++时的内存视图
WooCommerce后台产品编辑页:获取分类ID并实现角色权限控制
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
excel怎么制作工资条 excel快速生成工资条的方法
Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】
微信网页版官方入口直达 微信网页版网页版登录使用方法
想当下一个《2077》?《心之眼》Steam评价升至"多半好评"
Composer如何在生产环境安全地执行composer update
MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
顺丰快件物流信息 官方网站查询入口
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
狙击外星人小游戏开始_狙击外星人小游戏立即开始
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
晋江读书网页版在线登录 晋江读书电脑版官网
顺丰国际快递查询 国际件官方查询入口
Go语言JSON解析深度指南:动态访问与结构体映射实践
在VS Code中配置和运行Dart程序的完整步骤
必由学在线入口 必由学网页版快速登录入口
ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版
C#使用XPath查询节点时出错? 常见语法错误与调试技巧
QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网
邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策
Lar*el Excel导入时生成自定义递增ID的策略与实践
html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】
Android Studio计算器C键功能异常排查与修复教程
UC浏览器官网入口2025最新 UC浏览器网页版正式地址
优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题
J*a TimerTask中HashMap意外清空的深层原因与解决方案
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
怎么搭建一个php网站源码_搭php网站源码搭建教程
MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏