http://liao.cpython.org/pandas26/
http://liao.cpython.org/pandas25/
https://blog.csdn.net/weixin_37226516/article/details/64134643

两个Series的拼接,默认是在列上(往下)拼接,axis = 0,如果要横向往右拼接,axis = 1

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

s1 = pd.Series(np.arange(10,13))
s2 = pd.Series(np.arange(100,103))pd.concat([s1,s2])
Out[13]:
0     10
1     11
2     12
0    100
1    101
2    102
dtype: int32
pd.concat([s1,s2], keys = [1,2])
Out[14]:
1  0     101     112     12
2  0    1001    1012    102
dtype: int32
pd.concat([s1,s2], keys = [1,2],names = ['from','ID'])
Out[16]:
from  ID
1     0      101      112      12
2     0     1001     1012     102
dtype: int32

横向拼接 axis = 1
要在相接的时候在加上一个层次的key来识别数据源自于哪张表,可以增加key参数

s1 = pd.Series(np.arange(10,15))
s2 = pd.Series(np.arange(100,103))
pd.concat([s1,s2], axis = 1,keys = ['s1','s2'],names = ['from','ID'])
Out[21]: s1     s2
0  10  100.0
1  11  101.0
2  12  102.0
3  13    NaN
4  14    NaN

把有相同columns的两个df拼接:Combine two DataFrame objects with identical columns.

练习创建df

idx = 'this is a fake data'.split()
df1 = pd.DataFrame({'Country':['China','Japan','Germany','USA','UK'],'Team':['A','B','A','C','D']},index = idx)col = 'Country Team'.split()
idx_2 = ['fake','world']
values = [['KLR',100],['abc',200]]
df2 = pd.DataFrame(values,index = idx_2, columns = col)df1
Out[43]: Country Team
this    China    A
is      Japan    B
a     Germany    A
fake      USA    C
data       UK    Ddf2
Out[44]: Country  Team
fake      KLR   100
world     abc   200

默认纵向拼接:

pd.concat([df1,df2])
Out[45]: Country Team
this     China    A
is       Japan    B
a      Germany    A
fake       USA    C
data        UK    D
fake       KLR  100
world      abc  200

添加axis = 1 后的拼接,横向拼接如果index 有相同的, 会默认拼接到相同的index 上

pd.concat([df1,df2],axis = 1)
Out[46]: Country  Team Country   Team
a      Germany     A     NaN    NaN
data        UK     D     NaN    NaN
fake       USA     C     KLR  100.0
is       Japan     B     NaN    NaN
this     China     A     NaN    NaN
world      NaN   NaN     abc  200.0

不同columns 拼接:

创建一个不同列的df3:

col = ['Team','SBF']
idx_3= ['true','world']
values3 = [['red','pm'],['orange','pl']]
df3 = pd.DataFrame(values3,index = idx_3, columns = col)
df3
Out[51]: Team SBF
true      red  pm
world  orange  pl

根据列名字做拼接,默认还是在列上拼接,相同列会拼接在一起

pd.concat([df1,df3])Country  SBF    Team
this     China  NaN       A
is       Japan  NaN       B
a      Germany  NaN       A
fake       USA  NaN       C
data        UK  NaN       D
true       NaN   pm     red
world      NaN   pl  orange

根据列名字做拼接,默认还是在列上拼接,相同列会拼接在一起,但是相同index的行不会在一起:

pd.concat([df2,df3])
Out[59]: Country  SBF    Team
fake      KLR  NaN     100
world     abc  NaN     200
true      NaN   pm     red
world     NaN   pl  orange

当axis = 1时, index 相同的会拼接,columns 相同的不会,只是简单都左+右都放在一起

pd.concat([df2,df3],axis = 1)
Out[62]: Country   Team    Team  SBF
fake      KLR  100.0     NaN  NaN
true      NaN    NaN     red   pm
world     abc  200.0  orange   pl

抽取其中的一列做拼接:

pd.concat([df1.Team,df2.Team,df3.Team])
Out[64]:
this          A
is            B
a             A
fake          C
data          D
fake        100
world       200
true        red
world    orange
Name: Team, dtype: object

如果这样写会报错:

pd.concat(df1['Team'],df2['Team'],df3['Team'])
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"pd.concat(df1[['Team']],df2[['Team']],df3[['Team']])
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

Pandas在做数据拼接的时候提供类似于数据库的内连接、外连接的操作。默认是outer join即外连接,可以使用参数指定连接的类型为内连接inner join(交集)。

pd.concat([df2,df3],join = 'inner')
Out[73]: Team
fake      100
world     200
true      red
world  orange

默认的是join = ‘outer’:

pd.concat([df2,df3],join = 'outer')
pd.concat([df2,df3])
Out[74]: Country  SBF    Team
fake      KLR  NaN     100
world     abc  NaN     200
true      NaN   pm     red
world     NaN   pl  orange

无视index的concat:如果两个表的index都没有实际含义,使用ignore_index参数,置true,合并的两个表就睡根据列字段对齐,然后合并。最后再重新整理一个新的index。

pd.concat([df2,df3], ignore_index = True)
Out[77]: Country  SBF    Team
0     KLR  NaN     100
1     abc  NaN     200
2     NaN   pm     red
3     NaN   pl  orange

pandas: pd.concat([df1,df3],axis默认=0纵向拼接),concat常用于纵向拼接,默认outer join相关推荐

  1. pandas 第一行_Pandas进阶,从0到100你还差这篇文章!

    /作者:youerning//来源:51CTO博客/今天分享的这篇文章,是关于pandas的一个串讲,很适合查漏补缺.一.数据对象pandas主要有两种数据对象:Series.DataFrame注:  ...

  2. RPA—pyautogui+PIL+pandas识别全版本(2.0-3.0)滑动验证码,获取表格数据

    文章目录 引言 破解滑块验证码 最终运行效果 个人公众号:螺旋编程极客  >>期待您的关注 引言   最近公司有个新需求,大体流程是这样的,进入天津市市场主体信用信息公示系统,根据exce ...

  3. Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]

    前言 接触python有一段时间了,但总有一道坎在心中挥之不去,那就是Numpy模块中的axis=-1/0/1/2...,每每见到axis=-1.axis=0.axis=1.axis=2等操作,心中真 ...

  4. pandas删除dataframe中行内容全是0的数据行(remove rows with all zeros in dataframe)

    pandas删除dataframe中行内容全是0的数据行(remove rows with all zeros in dataframe) 目录 pandas删除dataframe中行内容全是0的数据 ...

  5. 机器学习数据整合+pandas方法astype、merge、drop、to_numeric、concat等

    机器学习数据整合+pandas方法astype.merge.drop.to_numeric.concat等 # 合并两个数据集的数据并进行特征处理 def combine_features(self, ...

  6. python基础复习(30)--string[start:end:step] start默认0 end默认列尾 step默认1

    #字符串操作 string[start:end:step] start默认0 end默认列尾 step默认1 s="abcdefghijk" print("s---&qu ...

  7. python索引右往左_Python字符串从左到右索引默认0开始的,最大范围是字符串长度少1...

    Python字符串从左到右索引默认0开始的,最大范围是字符串长度少1 答:√ 法之所以具有特殊强制性和普遍约束力,在于: 答:法以国家强制力为后盾 中国大学MOOC: 下列哪部作品歌词采用了白话文与诗 ...

  8. Android 11.0 下拉状态栏通知栏的通知设置默认展开

    1.概述 在11.0 的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的 ...

  9. Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数

    首发于Datartisan数据工匠 写文章 Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数 Datartisan 9 个月前 几个月前,我看到一篇博客中列出了 Gith ...

  10. MongoDB 字段拼接 $concat(aggregation)

    $concat 拼接字符串操作,返回拼接后的字符串.语法格式如下: { $concat: [ <expression1>, <expression2>, ... ] } 参数可 ...

最新文章

  1. vue从创建到完整的饿了么(5)v-for,v-bind与计算属性
  2. PHP GD库解析一张简单图片并输出
  3. ftp改为sftp_浅谈 FTP、FTPS 与 SFTP
  4. estimate()==>从一组对应的点估算变换是否成功
  5. 《消息队列》函数讲解
  6. java 去掉 t_[Java教程]LocalDateTime去掉T
  7. VScode环境配置C/C++
  8. 解决办法:为什么我的DLL中加载后找不到指定的函数
  9. python2.7中文手册下载_python 2.7.12中文文档下载|
  10. 重装系统后计算机无法联网,小编教你重装win10系统后电脑上不了网怎么办
  11. 很短,很文艺,很唯美。这才是真正的英文经典
  12. 商汤提出手机端实时单目三维重建系统,实现逼真AR效果和交互
  13. 胆结石饮食有什么禁忌?
  14. 环游世界,走遍读过的每一个国家和城镇
  15. java中404什么意思_java web中关于404问题的根本来源与解决
  16. Socket中文乱码
  17. C/C++文件操作之CStdioFile
  18. 推荐一个学习Linux命令的网站
  19. 1919.8.29顺丰科技编程题(所有岗位一样)
  20. R语言——read.table函数

热门文章

  1. 如何方便的下载csdn博客正文
  2. JEP:Java表达式分析器
  3. 光纤MPO端面脏了也会造成您所不知道的故障
  4. Java学习手册:JDBC中getString()方法与getObject()方法有什么区别?
  5. Oracle P6培训系列:02登录
  6. ​发那科机器人PROFINET 主站配置
  7. iOS中的预编译指令的初步探究
  8. 数学建模的13种常用的方法
  9. 微信小程序使用图标库
  10. 9008刷机教程oppo_手机黑砖9006/9008救砖教程 通用救砖模式刷机修复方法