pandas DataFrame 的横向纵向拼接组合
2024-08-29 21:50:43
concat 与其说是连接,更准确的说是拼接。就是把两个表直接合在一起。于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis 。
函数的具体参数是:
concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False)
objs 是需要拼接的对象集合,一般为列表或者字典
axis=0 是按照行拼接,拼接之后行数增加,列数也根据join来定,join=’outer’时,列数是两表并集。同理join=’inner’,列数是两表交集。
在默认情况下为纵向拼接,即axis=0,此时有
concat([df1,df2]) 等价于 df1.append(df2)
在axis=1 时为横向拼接 ,此时有
concat([df1,df2],axis=1) 等价于 merge(df1,df2,left_index=True,right_index=True,how='outer')
以上转自: https://blog.csdn.net/qq_30718387/article/details/72152461
应用举例:
df=pandas.DataFrame() df2=pandas.DataFrame() df['id']=[1,2,3,4]
df['name']=['zhang','chen','lee','wang'] df2['id']=[2,3,4,5]
df2['place']=['Shenzhen','Hongkong','NewYork','London']
df3=pandas.DataFrame({'id':[]})
用法1:把来自两个不同DataFrame的列,纵向拼接到一起,赋值给另一个DataFrame的列。
df3['id']=pandas.concat([df['id'],df2['id']],axis=0,ignore_index=True)
执行后,
df3['id']=[1,2,3,4,5,2,3,4,5]
用法2:两个DataFrame进行纵向拼接:
df4=pandas.concat([df,df2],axis=0,ignore_index=True)
执行后,df4=
index | id | name | place |
0 | 1 | zhang | NaN |
1 | 2 | chen | NaN |
2 | 3 | lee | NaN |
3 | 4 | wang | NaN |
4 | 2 | NaN | Shenzhen |
5 | 3 | NaN | HongKong |
6 | 4 | NaN | NewYork |
7 | 5 | NaN | London |
用法3:两个DataFrame进行横向拼接:
df4=pandas.concat([df,df2],axis=1,ignore_index=True)
执行后,df4=
index | 0 | 1 | 2 | 3 |
0 | 1 | zhang | 2 | Shenzhen |
1 | 2 | chen | 3 | HongKong |
2 | 3 | lee | 4 | NewYork |
3 | 4 | wang | 5 | London |
多个拼接还可以使用生成器:
dfs=[df1,df2,df3,df4,df5] df6=pandas.DataFrame() df6['id']=pd.concat([df['id'] for df in dfs])
最新文章
- 三维网格形变算法(Laplacian-Based Deformation)
- React生命周期和虚拟DOM
- linux下vsftpd的安装与配置说明
- 淘淘实惠多www.taohuiduo.com-专注独家折扣、1折特卖、9块9包邮、全场包邮
- 利用Unicorn和Idaemu辅助解决Geekpwn SecretCode
- 最基本的mysql
- 剑指Offer-不用加减乘除做加法
- keras安装-【老鱼学keras】
- 部署Java Web项目到Heroku
- Oracle包被锁定的原因分析及解决方案
- Educational Codeforces Round 41 (Rated for Div. 2)(A~D)
- CentOS7更改Docker默认镜像和容器存储位置
- 代码中特殊的注释技术 -- TODO、FIXME和XXX的用处
- spring中配置监听队列的MQ
- 4. Configure maven in Spring Tool Suite
- C#中常见的系统内置委托用法详解(抄录)
- 开启otl的64位长整数支持
- Python abs() 函数
- 29.OGNL与ValueStack(VS)-总结OGNL[重点]
- python字典的排序
热门文章
- 自定义Element父子不关联的穿梭树
- centos8-django项目部署 nginx+uwsgi
- 搬东西 dp
- Q - Play With Sequence HDU - 3971 线段树 重新排序建树
- GoF23:建造者模式
- 测试开发专题:spring-boot统一异常捕获
- 一文教你快速搞懂 FOC ramp function 斜坡函数的作用和实现
- 修改托管dll文件
- python --RecursionError: maximum recursion depth exceeded in comparison
- angular controller的使用