深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】

深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南

Pandas是Python中最强大且广泛使用的数据处理库之一,提供了丰富的函数和工具,以便更轻松地处理和分析数据。在本文中,我们将深入探讨Pandas中一系列数据连接、合并、加入、添加、重构函数,包括merge、concat、join、append、stack和unstack。通过理解这些功能,你将能够更灵活地处理和转换数据,提高数据分析和清理的效率。

image-20240211142931700

1. merge函数

merge函数用于将两个数据框基于一个或多个键进行连接。以下是一个简单的示例:

import pandas as pd# 创建两个数据框
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],'value': [5, 6, 7, 8]})# 使用merge进行连接
merged_df = pd.merge(df1, df2, on='key')print(merged_df)

在这个例子中,我们使用merge函数基于’key’列连接了两个数据框。输出将是一个包含共同键的新数据框。

image-20240211142352520

2. concat函数

concat函数用于沿着指定轴连接多个数据框。以下是一个示例:

# 创建两个数据框
df1 = pd.DataFrame({'A': [1, 2],'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6],'B': [7, 8]})# 使用concat进行连接
concatenated_df = pd.concat([df1, df2])print(concatenated_df)

在这个例子中,我们使用concat函数沿着默认的行轴连接了两个数据框。你还可以通过指定axis参数来沿着列轴连接。

image-20240211142441586

3. join函数

join函数用于将两个数据框基于索引进行连接。以下是一个简单的例子:

# 创建两个数据框
df1 = pd.DataFrame({'value': [1, 2]}, index=['A', 'B'])
df2 = pd.DataFrame({'value': [3, 4]}, index=['B', 'C'])# 使用join进行连接
joined_df = df1.join(df2, how='inner')print(joined_df)

在这个例子中,我们使用join函数将两个数据框基于索引进行了内连接(inner join)。

4. append函数

append函数用于将一个数据框追加到另一个数据框的末尾。以下是一个例子:

# 创建两个数据框
df1 = pd.DataFrame({'A': [1, 2],'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6],'B': [7, 8]})# 使用append进行连接
appended_df = df1.append(df2)print(appended_df)

在这个例子中,我们使用append函数将df2追加到了df1的末尾。

5. stack和unstack函数

stackunstack函数用于在行和列之间进行数据重构。以下是一个示例:

# 创建一个多层索引的数据框
arrays = [['A', 'A', 'B', 'B'],[1, 2, 1, 2]]
multi_index = pd.MultiIndex.from_arrays(arrays, names=('letters', 'numbers'))
df = pd.DataFrame({'value': [1, 2, 3, 4]}, index=multi_index)# 使用stack进行数据重构
stacked_df = df.stack()print(stacked_df)

在这个例子中,我们使用stack函数将列标签的层次结构转移到行索引,创建了一个更紧凑的数据框。

6. stackunstack 函数

stackunstack 函数是用于在行和列之间进行数据重构的强大工具。下面是一个例子:

# 创建一个多层索引的数据框
arrays = [['A', 'A', 'B', 'B'],[1, 2, 1, 2]]
multi_index = pd.MultiIndex.from_arrays(arrays, names=('letters', 'numbers'))
df = pd.DataFrame({'value': [1, 2, 3, 4]}, index=multi_index)# 使用unstack进行数据重构
unstacked_df = df.unstack()print(unstacked_df)

在这个例子中,我们使用unstack函数将行索引的层次结构转移到列,使数据框更为直观。

image-20240211142522978

7. set_indexreset_index 函数

set_indexreset_index 函数用于重新设置数据框的索引,有助于灵活地处理数据框的结构。

# 创建一个简单的数据框
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})# 使用 set_index 将 'A' 列设置为新的索引
df_set_index = df.set_index('A')print(df_set_index)

在这个例子中,我们使用 set_index 将 ‘A’ 列设置为新的索引,这可以方便地基于该列进行数据检索。

# 使用 reset_index 重新设置索引
df_reset_index = df_set_index.reset_index()print(df_reset_index)

reset_index 则是用于将设置的新索引还原为默认整数索引。这在某些情况下很有用,特别是在进行一些索引操作后需要将数据框还原到初始状态。

8. pd.merge 的更高级用法

除了基本的连接操作,pd.merge 还提供了一些高级用法,如多键连接、不同连接方式等。

# 创建两个数据框
df1 = pd.DataFrame({'key1': ['A', 'B', 'C'],'key2': ['X', 'Y', 'Z'],'value': [1, 2, 3]})
df2 = pd.DataFrame({'key1': ['A', 'B', 'C'],'key2': ['X', 'Z', 'Y'],'value': [4, 5, 6]})# 多键连接
multikey_merge = pd.merge(df1, df2, on=['key1', 'key2'])print(multikey_merge)

在这个例子中,我们使用 pd.merge 进行多键连接,通过传递一个键的列表,实现更精确的匹配。

9. 分层索引的运用

分层索引是 Pandas 中一项重要的功能,通过它,你可以创建具有多层次的行或列索引,更灵活地组织和访问数据。

# 创建一个包含分层索引的数据框
data = {'value': [1, 2, 3, 4, 5, 6],'attribute': ['A', 'B', 'C', 'A', 'B', 'C']}
df_multiindex = pd.DataFrame(data, index=[['Group1', 'Group1', 'Group1', 'Group2', 'Group2', 'Group2'],['X', 'Y', 'Z', 'X', 'Y', 'Z']],columns=['value', 'attribute'])print(df_multiindex)

在这个例子中,我们创建了一个包含两层分层索引的数据框,其中第一层为 ‘Group1’ 和 ‘Group2’,第二层为 ‘X’、‘Y’ 和 ‘Z’。这样的数据结构使得我们可以更方便地进行多层次的数据分析和操作。

image-20240211142616907

10. 处理缺失数据

数据中经常会包含缺失值,而 Pandas 提供了一系列处理缺失数据的方法,例如 dropnafillna

# 创建一个包含缺失值的数据框
df_missing = pd.DataFrame({'A': [1, 2, np.nan, 4],'B': [5, np.nan, 7, 8]})# 使用 dropna 删除包含缺失值的行
df_cleaned = df_missing.dropna()print(df_cleaned)

在这个例子中,我们使用 dropna 删除包含缺失值的行。除此之外,你还可以使用 fillna 来填充缺失值,以便更好地保留数据。

总结:

通过本文,我们深入探讨了 Pandas 中一系列重要的数据连接、合并、加入、添加、重构函数,包括 mergeconcatjoinappendstackunstackset_indexreset_index 等。这些功能为数据科学家和分析师提供了强大的工具,使其能够更灵活地处理和分析各种数据。

我们学习了基本的连接和合并操作,了解了如何使用不同的连接方式以及处理多键连接。同时,介绍了分层索引的运用,使数据结构更为灵活。

此外,我们还探讨了处理缺失数据的方法,包括使用 dropna 删除缺失值所在的行和使用 fillna 填充缺失值,从而在数据清理和准备阶段更加得心应手。

通过不断练习和应用这些知识,你将更加熟练地处理不同类型的数据,并能够更高效地进行数据分析和挖掘。Pandas 提供的这些功能和技巧,无疑为数据科学领域的从业者提供了强大的支持,希望本文能够为你在数据处理的学习和实践中提供有益的指导。祝你在数据科学的旅程中取得更大的成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/464969.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python常用模块

前言 在使用Python进行开发时,会经常使用到不同的模块来帮助我们完成某部分功能的实现,因此掌握一些常用模块的常用方式可以帮助我们加速程序开发。 time模块 在Python中通常有以下几种方式来表示时间: 1.时间戳(timestamp),表示的是从1970年1月1日0…

第一篇【传奇开心果微博文系列】Python微项目技术点案例示例:pillow库实现毛笔字春联

传奇开心果微博文系列 系列微博文目录Python微项目技术点案例示例系列 微博文目录一、微项目目标二、实现微项目编程思路三、初步实现目标示例代码四、添加背景色、边框、阴影效果示例代码五、添加花纹背景、装饰线条示例代码六、添加花朵、插图等示例代码 系列微博文目录 Pyt…

数据结构(2) 线性表

线性表 线性表的定义线性表的基本操作lnitList(&L)DestroyList(&L)Listlnsert(&L,i,e)ListDelete(&L,i,&e)LocateElem(L,e)GetElem(L,i)Length(L)PrintList(L)Empty(L)Tips:引用值 小结 根据数据结构的三要素–逻辑结构、数据的运算、存储结构,…

spring 入门 一

文章目录 Spring简介Spring的优势Spring的体系结构 Spring快速入门Spring程序开发步骤导入Spring开发的基本包坐标编写Dao接口和实现创建Spring核心配置文件在Spring配置文件中配置UserDaoImpl使用Spring的API获得Bean实例 Spring配置文件Bean标签基本配置Bean标签范围配置Bean…

EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)

目录 小球视频 图像输出函数 loadimage用于从文件中读取图片 putimage在当前设备上绘制指定图像。 initgraph 函数 图片输出 代码详解: 1. 初始化图形界面 2. 设置背景颜色并清除屏幕 3. 加载并显示图片 4. 等待用户输入并退出程序 图形界面中的小球 1…

【NodeJS】006- API模块与会话控制介绍d

1.简介 1.1 接口是什么 接口是 前后端通信的桥梁 简单理解:一个接口就是 服务中的一个路由规则 ,根据请求响应结果 接口的英文单词是 API (Application Program Interface),所以有时也称之为 API 接口 这里的接口指的是『数据接口』&#…

React18原理: 再聊Fiber架构下的时间分片

时间分片 react的任务可以被打断,其实就是基于时间分片的人眼最高能识别的帧数不超过30帧,电影的帧数差不多是在24浏览器的帧率一般来说是60帧,也就是每秒60个画面, 平均一个画面大概是16.5毫秒左右浏览器正常的工作流程是运算渲染&#xff…

二分搜索法的探究与心得

引言 在计算机科学中,二分搜索(Binary Search)算法是一种在有序数组中查找特定元素的基本搜索技术。其优点在于高效的搜索速度,时间复杂度为 ( O(log n) ),这一点与时间复杂度为O(n) 的线性搜索法相比,效率…

Spring Cloud Hystrix 参数配置、简单使用、DashBoard

Spring Cloud Hystrix 文章目录 Spring Cloud Hystrix一、Hystrix 服务降级二、Hystrix使用示例三、OpenFeign Hystrix四、Hystrix参数HystrixCommand.Setter核心参数Command PropertiesFallback降级配置Circuit Breaker 熔断器配置Metrix 健康统计配置Request Context 相关参数…

python 基础知识点(蓝桥杯python科目个人复习计划35)

今日复习计划:阶段总结(新年贺礼) 1.python简介(定义,优点,缺点,应用领域) python:一种广泛使用的解释型,高级和通用的编程语言 python极简,生…

python执行js代码

1. Python执行JavaScript代码 假如在爬虫逆向分析时,发现某个js加密算法比较繁琐,用Python还原同样的算法比较费劲。此时,可以不必使用Python还原,而是利用Python去直接调用JavaScript中定义的功能。 想实现Python调用JavaScrip…

六招,搞定大气上档次的可视化界面!有图有真相。

以下是一些设计可视化图表更加美观大气的建议: 选择合适的颜色: 颜色可以帮助人们更好地理解和记忆数据。选择颜色时,应该考虑颜色的对比度、亮度和饱和度等因素,同时也要考虑颜色的文化含义和情感效果。 使用合适的字体&#x…