当前位置: 首页 > news >正文

Python实战:Pandas数据合并与重塑

本文将深入探讨Pandas库在数据合并与重塑方面的强大功能。我们将涵盖多种数据合并方法,如merge、join、concat等,以及数据重塑的技巧,如pivot_table、merge_asof等。

一、引言

Pandas是一个强大的Python数据分析库,它提供了丰富的数据结构和数据分析工具,使得数据处理变得简单易行。在数据分析和挖掘过程中,数据合并与重塑是常见的操作。Pandas提供了多种方法来实现这些操作,使得我们能够高效地处理数据。

二、数据合并

数据合并是将多个DataFrame对象合并成一个DataFrame对象的过程。在Pandas中,有多种方法可以实现数据合并,如merge、join、concat等。
1. concat
concat函数用于沿着指定轴将多个DataFrame对象合并成一个DataFrame对象。它支持不同的轴(axis),如0轴(行)和1轴(列)。

import pandas as pd
# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']},index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],'B': ['B4', 'B5', 'B6', 'B7'],'C': ['C4', 'C5', 'C6', 'C7'],'D': ['D4', 'D5', 'D6', 'D7']},index=[4, 5, 6, 7])
# 沿着0轴(行)合并
result_row = pd.concat([df1, df2])
# 沿着1轴(列)合并
result_col = pd.concat([df1, df2], axis=1)

2. merge
merge函数用于根据指定的键(key)将两个或多个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、外连接(left、right、outer)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})
# 内连接
result_inner = pd.merge(df1, df2, on='key', how='inner')
# 左连接
result_left = pd.merge(df1, df2, on='key', how='left')
# 右连接
result_right = pd.merge(df1, df2, on='key', how='right')
# 外连接
result_outer = pd.merge(df1, df2, on='key', how='outer')

3. join
join函数用于根据索引将两个或多个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、外连接(left、right、outer)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3']},index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],'B': ['B4', 'B5', 'B6', 'B7'],'D': ['D4', 'D5', 'D6', 'D7']},index=[4, 5, 6, 7])
# 内连接
result_inner = df1.join(df2, how='inner')
# 左连接
result_left = df1.join(df2, how='left')
# 右连接
result_right = df1.join(df2, how='right')
# 外连接
result_outer = df1.join(df2, how='outer')

三、数据重塑

数据重塑是将DataFrame对象转换成其他形式的过程,如转置、重塑、分组等。在Pandas中,可以使用多种方法来实现数据重塑,如pivot_table、merge_asof等。
1. pivot_table
pivot_table函数用于将DataFrame对象转换成 pivot 表。它可以根据指定的行键、列键和值键来重塑数据。

# 创建一个DataFrame对象
df = pd.DataFrame({'key1': ['A', 'A', 'B', 'B'],'key2': ['one', 'two', 'one', 'two'],'value': [10, 20, 30, 40]})
# 重塑数据
result = pd.pivot_table(df, values='value', index=['key1', 'key2'], columns='value')

2. merge_asof
merge_asof函数用于根据指定的键(key)和度量(measure)将两个DataFrame对象合并成一个DataFrame对象。它支持不同的连接方式,如内连接(inner)、左连接(left)等。

# 创建两个DataFrame对象
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})
# 内连接
result = pd.merge_asof(df1, df2, on='key', by='A', direction='nearest')

四、总结

本文详细介绍了Pandas在数据合并与重塑方面的功能。我们首先探讨了数据合并的方法,如concat、merge和join,以及它们的不同连接方式和应用场景。然后,我们介绍了数据重塑的方法,如pivot_table和merge_asof,以及它们在数据转换和分组方面的应用。

http://www.lryc.cn/news/322200.html

相关文章:

  • 如何理解 Linux 命令行参数与环境变量7
  • 奥特曼回应GPT5
  • QT----给程序添加上任务栏托盘图标和退出
  • arm地址对齐的总结
  • 就业班 2401--3.13 走进网络
  • SWIFT介绍和学习(简单入门级别)
  • 智慧城市:提升城市治理能力的关键
  • golang 对接第三方接口 RSA 做签(加密) 验签(解密)
  • Spring Data访问Elasticsearch----Elasticsearch存储库Repositories
  • 初探 Cocos Creator: 碰撞与物理系统
  • Vue组件封装方案对比——v-if方式与内置component方式
  • python与excel第四节 批量新增、删除工作表
  • 计算机网络——计算机网络体系结构
  • 近期常用linux命令总结
  • 变配电站配电监控解决方案--变电站综合自动化系统
  • 【ollama】linux、window系统更改模型存放位置,全网首发2024!
  • Spring 被打暴了! vs Javalin vs Solon
  • IDEA中快速配置Git
  • vscode用SSH远程开发c语言
  • 鸿蒙Next 支持数据双向绑定的组件:Checkbox--Search--TextInput
  • 跨越时空的纽带:探索Facebook如何连接人与人
  • LabVIEW湍流等离子体束热效率优化
  • 21个 JVM 技术点详解(附面试解答)
  • mysql逗号分隔字段拆成行简述
  • 最新梨花带雨网页音乐播放器二开优化修复美化版全开源版本源码下载
  • golang 操作redis
  • macOS - 获取硬件设备信息
  • 突破编程_C++_STL教程( queue 的基础知识)
  • Hystrix 容错机制数据监控可视界面无法加载
  • 【Java】POI解析excel