pandas实现数据concat拼接
创作时间:
作者:
@小白创作中心
pandas实现数据concat拼接
引用
CSDN
1.
https://blog.csdn.net/panghuangang/article/details/146065293
pandas中的concat函数是一个非常强大的数据拼接工具,广泛应用于批量拼接相同格式的Excel文件、给DataFrame添加行或列等场景。本文将详细介绍concat函数的语法、参数,并通过多个具体示例展示其使用方法。
pandas实现数据concat拼接
使用场景:批量拼接相同格式的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)
拼接后的结果:
热门推荐
在选煤厂高质量供电系统中谐波是如何治理的
发动机舱可以用水枪直接冲洗吗?车主:后悔才知道……
武汉1套房子大概多少钱?2025武汉各区房价一览表
健身房7天训练计划这样安排就够了
“丁克” 成风?韩国民众生育意愿走低,半数家庭不想生儿育女
新手也能成烘焙高手!空气炸锅烤柠檬干全攻略!
按揭的房子是否可以出租?
比特币涨破7.2万美元,价格创新高背后风险涌动
普洱玫瑰花茶的功效与禁忌及适宜人群
新工科强校评选结果出炉!哈工大表现抢眼,17所高校榜上有名
恐龙时代的三个纪元:三叠纪、侏罗纪、白垩纪有何不同?
JS图片加载404错误的全面解决方案
孕妇饮食指南:健康营养从口入
在家里的高效燃脂运动方法,每天最佳燃脂运动时间
马布里近况:已落户香港,全家必须学习中文!17岁儿子成归化对象
湖人完整阵容来袭,詹姆斯率队逐冠前景如何?
抽血检查有哪些注意事项?抽血检查要空腹吗?
信息安全体系架构设计指南
特殊教育+职业教育!公益力量为残障学生铺就就业路
花语知多少?揭秘不同场合送花的艺术与禁忌
过道墙面如何装饰?这份背景墙设计攻略请收好
龙井茶的特点、口感描述
营养师的减肥高蛋白奶昔食谱
400V 和 800V 所适用的车型有什么区别?
优质蛋白质早餐排行榜:鸡蛋排倒数第一,豆腐排第5,建议了解
人形机器人加速跑进量产元年 成都如何布局“造身”“造脑”关键环节?
Mini LED与MicroLED两种显示技术对比分析
学者:为什么说高句丽在历史上是我国东北的地方政权,与别的国家没有继承关系?
走进12366纳税缴费服务热线:解密宝山税务的贴心服务
怎么从地方债利差收窄中寻找机会