当前位置: 代码网 > it编程>编程语言>其他编程 > pandas实现数据concat拼接的示例代码

pandas实现数据concat拼接的示例代码

2025年06月05日 其他编程 我要评论
使用场景:批量拼接相同格式的excel、给dataframe添加行、给dataframe添加列等。语法使用某种方式合并方式(inner/outer)、沿着某个轴向(axis=0/1)、把多个panda

使用场景:批量拼接相同格式的excel、给dataframe添加行、给dataframe添加列等。

语法

使用某种方式合并方式(inner/outer)、沿着某个轴向(axis=0/1)、把多个pandas对象(dataframe/seires)拼接成一个。

pandas.concat(objs, *, axis=0, join='outer', ignore_index=false, keys=none, levels=none, names=none, verify_integrity=false, sort=false, copy=none)

返回值

  • 当沿索引(axis=0)连接所有 series 时,返回一个 series。
  • 当 objs 中包含至少一个 dataframe 时,返回一个 dataframe。
  • 当沿列(axis=1)连接时,返回一个 dataframe。

参数说明

  • objs:需要连接的对象(如 dataframe 或 series)的列表或字典。
  • axis:指定连接轴。{0/’index’, 1/’columns’}, 默认0。axis=0:沿行方向连接(垂直堆叠)。axis=1:沿列方向连接(水平堆叠)。
  • join:指定连接方式,{‘inner’, ‘outer’},默认为 ‘outer’。join=‘outer’:外连接,保留所有索引(默认)。join=‘inner’:内连接,只保留共有索引。
  • ignore_index:是否忽略原始索引并生成新的整数索引。bool,默认为 false。ignore_index=true:忽略原始索引,生成新的整数索引。ignore_index=false:保留原始索引。
  • keys:为连接后的对象添加外层索引(多层索引)。list 或 tuple。
  • levels:与 keys 参数配合使用,指定多层索引的具体层级。list 或 tuple。
  • names:为多层索引的层级命名。list 或 tuple。
  • verify_integrity:是否检查新索引是否有重复。bool,默认为 false。
  • sort:是否对非连接轴进行排序。bool,默认为 false。
  • copy:是否复制数据。bool,默认为 true。

示例:使用pandas.concat合并数据

第1个dataframe:

import pandas as pd

df1 = pd.dataframe({'a': ['a0', 'a1', 'a2', 'a3'], 'b': ['b0', 'b1', 'b2', 'b3'], 'c': ['c0', 'c1', 'c2', 'c3'], 'd': ['d0', 'd1', 'd2', 'd3']})

查看数据:

在这里插入图片描述

第2个dataframe:

df2 = pd.dataframe({'b': ['b4', 'b5', 'b6', 'b7'], 'c': ['c4', 'c5', 'c6', 'c7'], 'd': ['d4', 'd5', 'd6', 'd7'], 'e': ['e4', 'e5', 'e6', 'e7']})

查看结果:

在这里插入图片描述

默认的concat:参数axis=0,join=‘outer’,ignore_index=false

pd.concat([df1, df2])

合并后的结果:

在这里插入图片描述

使用ignore_index=true参数可以忽略原来的索引

pd.concat([df1, df2], ignore_index=true)

合并后的数据:

在这里插入图片描述

使用join='inner’参数过滤掉不匹配的列

pd.concat([df1, df2], ignore_index=true, join='inner')

合并后的数据:

在这里插入图片描述

使用axis=1相当于添加新列

添加一列series

dataframe:

在这里插入图片描述

再构造一个series:

s1 = pd.series(list(range(10, 14)), name='f')

在这里插入图片描述

按列合并:

pd.concat([df1, s1], axis=1)

合并后的结果:

在这里插入图片描述

添加多列series

dataframe:

在这里插入图片描述

第1个series:

在这里插入图片描述

第2个series:

s2 = df1.apply(lambda x : x['d'] + '_g', axis=1)
s2.name = 'g'

在这里插入图片描述

合并1个dataframe和2个series:

pd.concat([df1, s1, s2], axis=1)

合并后的结果:

在这里插入图片描述

concat的要合并的对象参数可以只包含series列表

在这里插入图片描述

在这里插入图片描述

合并两个series:

pd.concat([s1, s2], axis=1)

合并后的结果:

在这里插入图片描述

concat的要合并的对象参数dataframe和series顺序可以混合

要合并的dataframe:

在这里插入图片描述

要合并的series:

在这里插入图片描述

要合并的series:

在这里插入图片描述

合并数据:

pd.concat([s1, df1, s2], axis=1)

合并后的结果:

在这里插入图片描述

一行一行给dataframe添加数据

先生成一个空的dataframe:

df = pd.dataframe(columns=['s'])

在这里插入图片描述

利用concat可以接受对象列表的特点,进行拼接:

pd.concat([pd.dataframe([i], columns=['s']) for i in range(6)], ignore_index=true)

拼接后的结果:

在这里插入图片描述

到此这篇关于pandas实现数据concat拼接的示例代码的文章就介绍到这了,更多相关pandas concat拼接内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com