不管你的数据有多少,用python做数据合并就是这么简单!

2024年03月09日08:55:04 科技 1947

Python数据分析领域,pandas库以其强大的数据处理能力而闻名。其中,DataFrame的合并与连接操作是数据整合与分析过程中的关键步骤。本文将详细介绍如何利用Pandas提供的concatmerge方法进行DataFrame的合并与连接,并通过实际代码示例展示其应用场景。

不管你的数据有多少,用python做数据合并就是这么简单! - 天天要闻

使用pd.concat()进行DataFrame的合并

1.水平(横向)合并

pd.concat()函数可以用于水平方向上拼接多个DataFrame。当DataFrames的列名相同或互补时,可通过此方法实现行的堆叠:

import pandas as pd

# 创建两个具有相同列名的DataFrame
df1 = pd.DataFrame({'Name': ['John', 'Anna'], 'Age': [28, 30]})
df2 = pd.DataFrame({'Name': ['Peter', 'Linda'], 'Age': [25, 35]})

# 使用pd.concat()进行水平合并
merged_df = pd.concat([df1, df2], ignore_index=True)  # 忽略原索引并生成新索引
print(merged_df)

2.垂直(纵向)合并

当需要根据DataFrame的索引进行合并时,可以通过设置axis=1来实现垂直方向上的合并:

df3 = pd.DataFrame({'Country': ['USA', 'Canada']}, index=['John', 'Anna'])
df4 = pd.DataFrame({'City': ['New York', 'Toronto']}, index=['John', 'Anna'])

# 垂直方向合并
vertical_merged_df = pd.concat([df3, df4], axis=1)
print(vertical_merged_df)

使用pd.merge()进行DataFrame的连接

pd.merge()函数基于指定键(key)对DataFrame进行连接操作,适用于具有共同列名或者索引的情况。主要有以下几种连接类型:

  • 内连接(inner join):默认情况下,pd.merge()执行的是内连接,只保留两个DataFrame中键值匹配的行。
df5 = pd.DataFrame({'Name': ['John', 'Peter'], 'Department': ['Sales', 'IT']})
df6 = pd.DataFrame({'Name': ['John', 'Anna'], 'Salary': [50000, 60000]})

# 内连接
inner_joined_df = pd.merge(df5, df6, on='Name')
print(inner_joined_df)
  • 左连接(left join):保留左侧DataFrame的所有记录,右侧DataFrame仅包含与左侧键值匹配的记录。
left_joined_df = pd.merge(df5, df6, on='Name', how='left')
print(left_joined_df)
  • 右连接(right join):保留右侧DataFrame的所有记录,左侧DataFrame仅包含与右侧键值匹配的记录。
right_joined_df = pd.merge(df5, df6, on='Name', how='right')
print(right_joined_df)
  • 全连接(outer join):保留两个DataFrame中所有记录,未匹配的键值用NaN填充。
outer_joined_df = pd.merge(df5, df6, on='Name', how='outer')
print(outer_joined_df)

进阶应用及注意事项

  • 多键连接:可以同时指定多个键进行连接,只需将键名称以列表形式传入on参数即可。
  • 连接顺序与效率:对于大数据集,连接操作可能会消耗大量计算资源。合理安排连接顺序和选择合适的连接类型能够有效提升性能。
  • 处理重复键值:在进行连接时,如果存在重复键值,需考虑如何处理这些重复项,以避免结果集出现冗余或混淆。

总结

掌握Pandas DataFrame的合并与连接操作是进行复杂数据处理和分析的关键技能。无论是Web开发中的API响应集成,还是数据分析项目中的多源数据融合,灵活运用pd.concat()pd.merge()都能显著提高工作效率,确保数据处理流程的准确性和完整性。

关注我,手把手带你快速入门 AI 机器学习编程!

科技分类资讯推荐

充电时,先插手机还是充电器?这几种充电方法,手机坏得快! - 天天要闻

充电时,先插手机还是充电器?这几种充电方法,手机坏得快!

我们每天都在使用手机,但很多人可能不知道正确的手机充电方式。充电时,先插手机还是充电器?手机一定要满充满放吗?这些知识一定要掌握01手机一定要满充满放吗?关于充电,总流传着一些说法:手机电量耗尽再充电,每次要充满,这样才有利于电池保养,随时充会影响电池寿命。实际上,这些理论都比较过时了。早些年广泛使...
全球第一台积电,对比大陆第一中芯国际,差距究竟有多大? - 天天要闻

全球第一台积电,对比大陆第一中芯国际,差距究竟有多大?

众所周知,在全球芯片代工领域,台积电是真正的第一名,不管是技术,还是市场份额都是第一名。而在中国大陆,则中芯国际是第一名,同样不管是技术,还是市场份额,都是中国大陆的第一名。那么问题来了,我们拿台积电,来对比一下中芯国际,看看差距到底有多大
OLED不再伤眼!探秘天马工厂破解“0频闪”护眼屏诞生之路 - 天天要闻

OLED不再伤眼!探秘天马工厂破解“0频闪”护眼屏诞生之路

人类本质上是矛盾的生物。 这一点在对待手机的态度上尤为明显。家长们一面担忧手机“伤眼”,频频告诫孩子“少玩手机防近视”;一面却难以割舍掌中方寸带来的便利与消遣。这种矛盾,使得“护眼”功能成为智能手机不可回避的核心需求。 然而回溯早期,厂商的所谓“护眼”方案颇为粗浅:无非是将屏幕调至昏暗,或是简单粗暴地...
“硬核服务”培育更多硬科技企业 - 天天要闻

“硬核服务”培育更多硬科技企业

本报记者 王 政 刘温馨制图:汪哲平近日,工业和信息化部等九部门联合印发《关于加快推进科技服务业高质量发展的实施意见》(以下简称《实施意见》),提出以创新驱动、市场导向、融合发展、系统推进、质量为先为原则,壮大服务主体,优化发展生态,提升服
5499元的iPhone16 Pro太火,把国补资金都用完了? - 天天要闻

5499元的iPhone16 Pro太火,把国补资金都用完了?

最近,有很多媒体报道称,多地的国补出现了暂停申领等情况。比如重庆、湖北、甘肃等地的一些地区,就受到限制,无法申请了。还有一些地区,也做了申请时间的限制,每天定时抢卷,只放出多少,一旦申请的晚了,就没有了。
5.2C!小米YU7充电速度首次公布:远超SU7 - 天天要闻

5.2C!小米YU7充电速度首次公布:远超SU7

6月8日消息,距离7月正式上市发布越来越近,在最新一期小米汽车答网友问(第152集)中,小米汽车公布了YU7的充电速度。谈及“小米YU7的充电速度怎么样”,官方表示,小米YU7全系搭载800V碳化硅高压平台,其中小米YU7 Max的最大充电
特斯拉Optimus项目负责人离职,项目前景添变数 - 天天要闻

特斯拉Optimus项目负责人离职,项目前景添变数

来源:环球网 【环球网财经综合报道】美东时间周五,特斯拉擎天柱人形机器人Optimus项目负责人米兰·科瓦奇在X平台宣布即将离职。他称这是“一生中最艰难的决定”,原因是离家太久,需花更多时间陪伴国外家人,强调此决定“与其他任何事情都无关”,
首届“复新”全球大学生智能影像创作大赛启动 - 天天要闻

首届“复新”全球大学生智能影像创作大赛启动

昨天,首届“复新”全球大学生智能影像创作大赛在复旦大学新闻学院启动。本次大赛由上海市人民政府新闻办公室指导,由复旦大学新闻学院主办,旨在激发全球大学生的创新思维,将为全球大学生提供一个展示创意与才华的舞台,推动智能影像技术在传媒领域的应用与发展,为培养适应时代需求的传媒人才注入新的活力。大赛开设五大...