0

0

Pandas 数据框合并与基于值创建新列的实践指南

心靈之曲

心靈之曲

发布时间:2025-10-14 09:21:31

|

302人浏览过

|

来源于php中文网

原创

pandas 数据框合并与基于值创建新列的实践指南

本文旨在指导读者如何使用 Pandas 库合并两个数据框,并根据特定列的值动态创建新的列。我们将通过一个实际案例,演示如何根据 `ZIP` 列合并数据框,并基于 `SEGMENT` 列的值,将 `TERRITORY` 列的值填充到新的列中,最终生成包含 `CR1_TERRITORY` 和 `CR2_TERRITORY` 列的合并数据框。

Pandas 库提供了强大的数据处理能力,其中数据框(DataFrame)的合并是常见的操作。本文将介绍如何使用 merge() 函数合并两个数据框,并根据特定条件创建新的列。我们将以一个实际的例子来说明,假设我们有两个数据框 df_1 和 df_2,它们都包含 ZIP,TERRITORY 和 SEGMENT 列。我们的目标是将这两个数据框合并,并基于 SEGMENT 列的值(CR1 和 CR2),创建新的 CR1_TERRITORY 和 CR2_TERRITORY 列。

首先,我们创建示例数据框:

import pandas as pd

df_1 = pd.DataFrame({
    'ZIP': [93517, 31625, 89311],
    'TERRITORY': [1001, 1002, 1002],
    'SEGMENT': ['CR1', 'CR1', 'CR1']
})

df_2 = pd.DataFrame({
    'ZIP': [93517, 31625, 72844],
    'TERRITORY': [2001, 2002, 2003],
    'SEGMENT': ['CR2', 'CR2', 'CR2']
})

接下来,我们使用 merge() 函数将这两个数据框合并。merge() 函数的 how 参数指定了合并的方式,这里我们使用 outer 连接,这意味着我们将保留两个数据框中的所有行,即使它们在另一个数据框中没有匹配的 ZIP 值。on 参数指定了用于合并的列,这里我们使用 ZIP 列。suffix 参数用于为合并后的列添加后缀,以区分来自不同数据框的列。

df_final = df_1.merge(df_2, how='outer', on='ZIP', suffixes=['_CR1', '_CR2'])

上述代码将生成一个包含所有 ZIP 值的数据框,其中 TERRITORY_CR1 列包含来自 df_1 的 TERRITORY 值,TERRITORY_CR2 列包含来自 df_2 的 TERRITORY 值。如果某个 ZIP 值只存在于一个数据框中,则对应的 TERRITORY 列的值将为 NaN。

为了得到最终的结果,我们需要重命名列,并将 NaN 值替换为 0。

医院网站系统
医院网站系统

HTML医院网站系统基于PHP+MYSQL开发,在文章内容网站的基础上,预设了医院概况、新闻动态、环境设备、名医荟萃、专科介绍、就医指南、专家门诊值班表、网上挂号、医疗保健知识、在线咨询等医院网站常用的栏目和测试数据,采用适合医院网站的专用模版,增强了系统的针对性和易用性。系统具有文章、图文、下载、社区、表单、用户等基本系统模块和一系列网站辅助功能,用户也可根据自身特点任意创建和修改栏目,适合创建

下载
df_final = df_final.rename(columns={'TERRITORY_CR1': 'CR1_TERRITORY', 'TERRITORY_CR2': 'CR2_TERRITORY'})
df_final = df_final.fillna(0)

最后,我们可以打印 df_final 数据框,查看结果。

print(df_final)

输出结果如下:

     ZIP  TERRITORY_CR1 SEGMENT_CR1  TERRITORY_CR2 SEGMENT_CR2
0  93517         1001.0         CR1         2001.0         CR2
1  31625         1002.0         CR1         2002.0         CR2
2  89311         1002.0         CR1            0.0           0
3  72844            0.0           0         2003.0         CR2

注意事项:

  • merge() 函数有多种连接方式(inner, outer, left, right),选择合适的连接方式取决于你的具体需求。
  • 如果你的数据框中包含重复的列名,merge() 函数会自动添加后缀以区分它们。你可以使用 suffixes 参数自定义后缀。
  • 在合并数据框之前,请确保用于合并的列的数据类型一致。
  • 在实际应用中,你可能需要根据更复杂的条件创建新的列。你可以使用 Pandas 提供的其他函数,如 apply() 和 loc[],来实现更灵活的数据处理。

总结:

本文介绍了如何使用 Pandas 库合并两个数据框,并根据特定列的值创建新的列。通过 merge() 函数,我们可以方便地将两个数据框连接起来,并使用 suffixes 参数自定义列名。此外,我们还学习了如何使用 fillna() 函数将 NaN 值替换为 0。掌握这些技巧可以帮助你更有效地处理和分析数据。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

71

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

1

2026.01.31

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

310

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

3

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

1

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

1

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

1

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

1

2026.02.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Java 教程
Java 教程

共578课时 | 55.6万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号