pandas: pd.concat([df1,df3],axis默认=0纵向拼接),concat常用于纵向拼接,默认outer join
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相关推荐
- pandas 第一行_Pandas进阶,从0到100你还差这篇文章!
/作者:youerning//来源:51CTO博客/今天分享的这篇文章,是关于pandas的一个串讲,很适合查漏补缺.一.数据对象pandas主要有两种数据对象:Series.DataFrame注: ...
- RPA—pyautogui+PIL+pandas识别全版本(2.0-3.0)滑动验证码,获取表格数据
文章目录 引言 破解滑块验证码 最终运行效果 个人公众号:螺旋编程极客 >>期待您的关注 引言 最近公司有个新需求,大体流程是这样的,进入天津市市场主体信用信息公示系统,根据exce ...
- 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等操作,心中真 ...
- pandas删除dataframe中行内容全是0的数据行(remove rows with all zeros in dataframe)
pandas删除dataframe中行内容全是0的数据行(remove rows with all zeros in dataframe) 目录 pandas删除dataframe中行内容全是0的数据 ...
- 机器学习数据整合+pandas方法astype、merge、drop、to_numeric、concat等
机器学习数据整合+pandas方法astype.merge.drop.to_numeric.concat等 # 合并两个数据集的数据并进行特征处理 def combine_features(self, ...
- 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 ...
- python索引右往左_Python字符串从左到右索引默认0开始的,最大范围是字符串长度少1...
Python字符串从左到右索引默认0开始的,最大范围是字符串长度少1 答:√ 法之所以具有特殊强制性和普遍约束力,在于: 答:法以国家强制力为后盾 中国大学MOOC: 下列哪部作品歌词采用了白话文与诗 ...
- Android 11.0 下拉状态栏通知栏的通知设置默认展开
1.概述 在11.0 的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的 ...
- Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数
首发于Datartisan数据工匠 写文章 Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数 Datartisan 9 个月前 几个月前,我看到一篇博客中列出了 Gith ...
- MongoDB 字段拼接 $concat(aggregation)
$concat 拼接字符串操作,返回拼接后的字符串.语法格式如下: { $concat: [ <expression1>, <expression2>, ... ] } 参数可 ...
最新文章
- vue从创建到完整的饿了么(5)v-for,v-bind与计算属性
- PHP GD库解析一张简单图片并输出
- ftp改为sftp_浅谈 FTP、FTPS 与 SFTP
- estimate()==>从一组对应的点估算变换是否成功
- 《消息队列》函数讲解
- java 去掉 t_[Java教程]LocalDateTime去掉T
- VScode环境配置C/C++
- 解决办法:为什么我的DLL中加载后找不到指定的函数
- python2.7中文手册下载_python 2.7.12中文文档下载|
- 重装系统后计算机无法联网,小编教你重装win10系统后电脑上不了网怎么办
- 很短,很文艺,很唯美。这才是真正的英文经典
- 商汤提出手机端实时单目三维重建系统,实现逼真AR效果和交互
- 胆结石饮食有什么禁忌?
- 环游世界,走遍读过的每一个国家和城镇
- java中404什么意思_java web中关于404问题的根本来源与解决
- Socket中文乱码
- C/C++文件操作之CStdioFile
- 推荐一个学习Linux命令的网站
- 1919.8.29顺丰科技编程题(所有岗位一样)
- R语言——read.table函数