concat 与其说是连接,更准确的说是拼接。就是把两个表直接合在一起。于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis 。 
函数的具体参数是:

  1. 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,此时有

  1. concat([df1,df2]) 等价于 df1.append(df2)

在axis=1 时为横向拼接 ,此时有

  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

应用举例:

  1. df=pandas.DataFrame()
  2.  
  3. df2=pandas.DataFrame()
  4.  
  5. df['id']=[1,2,3,4]
    df['name']=['zhang','chen','lee','wang']
  6.  
  7. df2['id']=[2,3,4,5]
    df2['place']=['Shenzhen','Hongkong','NewYork','London']

  8. df3=pandas.DataFrame({'id':[]})

用法1:把来自两个不同DataFrame的列,纵向拼接到一起,赋值给另一个DataFrame的列。

  1. df3['id']=pandas.concat([df['id'],df2['id']],axis=0,ignore_index=True)

执行后,

  1. df3['id']=[1,2,3,4,5,2,3,4,5]

用法2:两个DataFrame进行纵向拼接:

  1. 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进行横向拼接:

  1. df4=pandas.concat([df,df2],axis=1,ignore_index=True)

执行后,df4=

index 0 1 2 3
1        zhang   2         Shenzhen    
1 2 chen 3 HongKong
2 3 lee 4 NewYork
3 4 wang 5 London

多个拼接还可以使用生成器:

  1. dfs=[df1,df2,df3,df4,df5]
  2.  
  3. df6=pandas.DataFrame()
  4.  
  5. df6['id']=pd.concat([df['id'] for df in dfs])

pandas DataFrame 的横向纵向拼接组合的更多相关文章

  1. pandas.DataFrame学习系列1——定义及属性

    定义: DataFrame是二维的.大小可变的.成分混合的.具有标签化坐标轴(行和列)的表数据结构.基于行和列标签进行计算.可以被看作是为序列对象(Series)提供的类似字典的一个容器,是panda ...

  2. 如何通过Elasticsearch Scroll快速取出数据,构造pandas dataframe — Python多进程实现

    首先,python 多线程不能充分利用多核CPU的计算资源(只能共用一个CPU),所以得用多进程.笔者从3.7亿数据的索引,取200多万的数据,从取数据到构造pandas dataframe总共大概用 ...

  3. 打印datagridview内容 实现横向纵向分页(转)

    网上找了很多打印的,只发现这个比较好,实现了横向纵向分页. 代码如下: using System;using System.Collections.Generic;using System.Text; ...

  4. Oracle横向纵向汇总

    Oracle横向纵向汇总 有一张表test 如下, (NO 学生编号 ,cj 成绩) NO name KM CJ 001 张三 语文 80  001 张三 数学 86  001 张三 英语 75  0 ...

  5. 固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>

    固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>     先上图例   & 无论多少数据--都完美! 背景:由于我司行业方向,需要很多数据报表,则t ...

  6. pandas.DataFrame的pivot()和unstack()实现行转列

    示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...

  7. pandas DataFrame apply()函数(1)

    之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...

  8. pandas DataFrame apply()函数(2)

    上一篇pandas DataFrame apply()函数(1)说了如何通过apply函数对DataFrame进行转换,得到一个新的DataFrame. 这篇介绍DataFrame apply()函数 ...

  9. 把pandas dataframe转为list方法

    把pandas dataframe转为list方法 先用numpy的 array() 转为ndarray类型,再用tolist()函数转为list

随机推荐

  1. 集训模拟赛-1-T2

    好了不要在铺垫了直接整吧就 题目拿来!!!!!!! 倒水 (water) (256MB,1s) [问题描述] 你有一个水桶(记为 0),两个杯子(记为 1,2).水桶中的水量无限,容量也无限.1 号杯 ...

  2. 题目分享H 二代目

    题意:有m个限制,每个限制l1,r1,l2,r2四个数,限制了一个长度为n的数第l1到r1位要与第l2到r2相同,保证r1-l1=r2-l2,求在限制下一共有多少种数 分析: 暴力的话肯定是从l1-r ...

  3. CC2530ADC应用

    ADC单通道外部电压采集 需要设置一个上机位命令控制字符. 系统时钟初始化——32MHZ晶振 串口0函数初始化——设置串口对应引脚,波特率,清楚中断标志 串口0接收中断响应函数——U0DBUF将控制命 ...

  4. NEON中的L可以避免溢出

    在做加法时,比如两个255x255的数值相加,那么正确结果将是130050,对一个最大值为65565的unsigned short是会溢出的,但是如果使用L命令时,则不会产生溢出.这说明L命令,不是先 ...

  5. 谈谈R语言的缺点和优点

    编码不友好,对中文不友好,逼着你用RStudio.Jupyter Notebook/Jupyter Lab.图标丑,每次点击感觉辣眼睛. 为节省内存,R语言计算默认有效数字为7位,比Excel的15位 ...

  6. fakebook

    0x01 查看robots.txt 发现user.php.bak文件 得到源码 <?php class UserInfo { public $name = ""; publi ...

  7. 【原创】Linux信号量机制分析

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  8. Spring MVC 函数式编程进阶

    1. 前言 上一篇对 Spring MVC 的函数式接口编程进行了简单入门,让很多不知道的同学见识了这种新操作.也有反应这种看起来没有传统写法顺眼,其实大家都一样.但是我们还是要敢于尝试新事物.Jav ...

  9. HttpPoolUtils 连接池管理的GET POST请求

    package com.nextjoy.projects.usercenter.util.http; import org.apache.http.Consts; import org.apache. ...

  10. wepy 小程序开发(Mixin混合)

    默认式混合 对于组件data数据,components组件,events事件以及其它自定义方法采用默认式混合,即如果组件未声明该数据,组件,事件,自定义方法等,那么将混合对象中的选项将注入组件之中.对 ...