IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 数据合并方法 —— Pandas concat() 详解 -> 正文阅读

[Python知识库]Python 数据合并方法 —— Pandas concat() 详解


参数说明

  • pandas.concat(objs, axis=0, join=‘outer’, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)

    Parameters 参数说明:

ParametersDescription
objs序列或映射。如果传递了映射,则排序的键将用作键参数,除非传递,在这种情况下将选择值。任何 None 对象都将被静默删除,除非它们都是 None 在这种情况下将引发 ValueError 。
axis{0/‘index’, 1/‘columns’},默认0。要连接的轴。
join{‘inner’, ‘outer’}, 默认‘outer’。如何处理其他轴(或轴)上的索引。
ignore_indexbool,默认为 False。如果为 True,则不要沿连接轴使用索引值。结果轴将标记为 0, …, n - 1。如果您要连接对象,而连接轴没有有意义的索引信息,这将非常有用。请注意,连接中仍然尊重其他轴上的索引值。
keys键序列,默认无。如果通过了多个级别,则应包含 元组 。使用传递的键作为最外层构建层次索引。
levels序列列表,默认无。用于构造 MultiIndex 的特定级别(唯一值)。否则,它们将从密钥中推断出来。
names默认无。生成的分层索引中的级别名称。
verify_integritybool 布林值,默认为 False。检查新的连接轴是否包含重复项。相对于实际的数据连接,这可能非常昂贵。
sortbool 布林值,默认为 False。如果连接为“外部”时尚未对齐,则对非连接轴进行排序。这在 join=‘inner’ 时无效,它已经保留了非串联轴的顺序。在 1.0.0 版更改: 默认情况下更改为不排序。
copybool 布林值,默认 True。如果为 False,则不要不必要地复制数据。

concat说明

前面讲了merge(),merge()主要是用于横向的连接合并,有兴趣的可以看看那篇merge()。今天写的这个methods主要是用于数据的竖向合并

当需要对连接的执行方式进行大量控制时, .concat() 方法非常有用。但是,如果不需要太多控制,那么 .append() 方法是另一种选择。

# Use the .append() method to combine the tracks tables
metallica_tracks = tracks_ride.append([tracks_master, tracks_st], sort=False)

# Merge metallica_tracks and invoice_items
tracks_invoices = metallica_tracks.merge(invoice_items, on='tid')

# For each tid and name sum the quantity sold
tracks_sold = tracks_invoices.groupby(['tid','name']).agg({'quantity':'sum'})

# Sort in decending order by quantity and print the results
print(tracks_sold.sort_values(by = 'quantity', ascending = False))

直接table1 去append()另外两张table就好了,其他的参数和concat一样


ignore_index 示例

如果ignore_index = False,则会使用连接轴axis的索引值,比如下图的012, 012,012。如果有keys的话,则会将keys显现出来,放到最外层做一个索引。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c89fuBOe-1651660540901)(Concatenate%20DataFrames%20together%20vertically%20f6a39cab3fbc4775bdc5298d0a552852/Untitled.png)]

如果为True,则会重新排序,从0开始到n-1。在这里插入图片描述


Example

先po三张表出来,方便大家看看这三张表的样例。
Table 1:tracks_master在这里插入图片描述

Table 2:tracks_ride
在这里插入图片描述

Table 3:tracks_st
在这里插入图片描述

合并上面三个表,竖向合并

# Concatenate the tracks
tracks_from_albums = pd.concat([tracks_master, tracks_ride, tracks_st],
                               sort=True)
print(tracks_from_albums)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KaWtwOw3-1651660540906)(Concatenate%20DataFrames%20together%20vertically%20f6a39cab3fbc4775bdc5298d0a552852/Untitled%205.png)]

加了ignore_index = True,旁边就多了新的index进行排序,见下图。注意,当有key的时候,ingnore_index如果是False,否则keys作为最外层的索引将会消失。

# Concatenate the tracks so the index goes from 0 to n-1
tracks_from_albums = pd.concat([tracks_master, tracks_ride, tracks_st],
                               ignore_index = True,
                               sort=True)
print(tracks_from_albums)

在这里插入图片描述

因为concat中默认是outer,他会进行全部的输出。我们可以使用inner,这样就能取得交集。

# Concatenate the tracks, show only columns names that are in all tables
tracks_from_albums = pd.concat([tracks_master, tracks_ride, tracks_st],
                               join = 'inner',
                               sort=True)
print(tracks_from_albums)

在这里插入图片描述

这里再额外讲一下里面的一个参数,verify_integrity。

这是一个验证参数。当它为True的时候,他就会去验证索引列有没有重复的值,如果有就会报错。


Reference

[1] Datacamp
[2] Pandas 官方文档

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:09:05  更:2022-05-07 11:10:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:39:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码