不管你的数据有多少,用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 机器学习编程!

科技分类资讯推荐

Nothing 首款头戴式耳机 Headphone (1) 发布,复古透明设计 - 天天要闻

Nothing 首款头戴式耳机 Headphone (1) 发布,复古透明设计

IT之家 7 月 2 日消息,Nothing 首款头戴式耳机 —— Nothing Headphone (1) 今日正式发布。这款耳机延续了该品牌复古、透明的设计风格,摒弃了触控设计,采用了更复古的物理滚轮和按键控制。Nothing Headphone (1) 采用 CNC 铝制外壳,内部记忆泡沫耳垫可以贴合耳朵。硬件方面,Nothing 与音响品牌 KEF
小米YU7支持车外呼叫小爱开前备箱:三个条件都满足才能用 - 天天要闻

小米YU7支持车外呼叫小爱开前备箱:三个条件都满足才能用

快科技7月2日消息,小米YU7上首发了车外小爱同学的功能,在车外有8个麦克风和1个扬声器。无论在哪个角度,都可以很容易使用语音控车,比如在车外直接让小爱同学打开前备箱。这也让很多网友和准车主疑惑,会不会存在安全问题?对此,小米汽车在最新一期问答中表示,出于安全的考量,在车外通过小爱同学打开小米YU7的前备箱,...
小米汽车辟谣YU7交付插队费:都是假的 - 天天要闻

小米汽车辟谣YU7交付插队费:都是假的

快科技7月2日消息,小米汽车日前发布第166集答网友问。对于“网上有人自称小米汽车交付专员,宣称可以提前交付车辆,是真的吗?”小米汽车表示:如有收到类似短信,请大家切勿相信,更不要涉及金钱交易,以避免经济损失。涉及类似“提前交付”、“提前交付需转账给个人”或“支付插队费”等信息,请大家一定要仔细甄别。涉...
甜品上市!七彩虹iGameRTX 5050 Ultra显卡:温控性能两开花 - 天天要闻

甜品上市!七彩虹iGameRTX 5050 Ultra显卡:温控性能两开花

据悉,一线显卡品牌七彩虹的又一甜品级装备iGameGeForce RTX 5050 Ultra系列显卡现已正式上架各大电商平台和线下授权零售商!该系列RTX5050显卡搭载8GBGDDR6高速显存,2560个CUDACores,配合革命性DLSS4多帧生成技术,3A游戏全特效畅玩无压力,内容创作如虎添翼!更配备强劲的散热系统,性能与温控双优表现,让每一分预算
光追入门但超流畅!映众RTX5050 8GB曜夜发布 - 天天要闻

光追入门但超流畅!映众RTX5050 8GB曜夜发布

映众GeForceRTX 5050 8GB曜夜显卡现已和大家见面。基于NVIDIABlackwell架构打造,以紧凑双槽设计、高效散热及AI加速能力,为新一代RTX50系入门级市场注入新活力。作为GeForceRTX 50系列的入门主力,映众RTX5050 8GB曜夜凭借NVIDIABlackwell架构的革新设计,在AI与图形处理效率上有着不俗的性能表现。
从SEO到CRO:搜索优化的时代变革 - 天天要闻

从SEO到CRO:搜索优化的时代变革

在数字营销领域,搜索引擎优化(SEO)曾经是获取流量的黄金法则。我们习惯于在搜索引擎输入关键词,然后结果页面中寻找答案。但随着ChatGPT、DeepSeek等生成式AI的崛起,这个延续了二十多年的搜索模式正在被彻底改写。当AI能够直接生成完整答案时,传统的SEO策略突然变得力不从心——这就是为什么我们需要重新认识AI时代的...
全球可持续交通创新联盟可持续航空燃料专委会成立 - 天天要闻

全球可持续交通创新联盟可持续航空燃料专委会成立

7月1日,全球可持续交通创新联盟的第一个国际性专委会—可持续航空燃料专委会成立。该专委会的成立旨在整合产业链力量,构建“技术创新-产业协同-价值共享”三位一体的生态体系,为中国乃至全球能源绿色转型和航空业低碳未来发展提供“中国方案”。启动仪式上,中国能建联合行业头部企业共同发布《可持续航空燃料(SAF)产...
张勇出局,蒋凡上位:阿里权力大地震 - 天天要闻

张勇出局,蒋凡上位:阿里权力大地震

英雄难过美人关。京东创始人刘强东,曾因“明州事件”一度沉寂,事隔七年之后才真正重回公众视野。当年的天猫总裁蒋凡,亦因一场“桃色风波”消失在镁光灯下,直至近期才锋芒再现。
2025第25周销量最高的30款机型曝光 前三只有一款国产 - 天天要闻

2025第25周销量最高的30款机型曝光 前三只有一款国产

【CNMO科技消息】近日,有数码博主曝光了2025年第25周(6月16日到6月22日)中国智能手机市场上销量最高的30款机型: 第一名,iPhone 16 Pro 第二名,iPhone 16 Pro Max 第三名,OPPO Reno 14 第四名,iPhone 16 第五名,REDMI K80 第六名,小米15 第七名,华为nova 14 第八名,荣耀40