dataframe横向和纵向拼接
横向拼接
import pandas as pd
import numpy as npdf1 = pd.DataFrame([['Tom','2001',98],['Jack','2002',63],['Lucy','2003',88],['Nick','2004',100]],columns=['姓名','学号','成绩'])df2 = pd.DataFrame([['Tom','2001','一班'],['Jack','2002','二班'],['Lucy','2003','二班'],['Anny','2005','一班']],columns=['姓名','学号','班级'])
重要参数介绍
- how:用来控制连接方式,可选inner(内连接),left(左连接),right(右连接),outer(外连接),默认选项为内连接
- on:指定基于某个共同列或某些共同列进行连接,默认选项为基于所有共同列进行连接
- left_on:如果连接时左右表的列名不一致,就不用on,而是指明左表列和右表列
- right_on:如果连接时左右表的列名不一致,就不用on,而是指明左表列和右表列
- left_index:如果是基于左表的索引,设置为True
- right_index:如果是基于右表的索引,设置为True
left_on可以和right_index一起使用,left_index可以和right_on一起使用
pd.merge(df1,df2,how='inner',on='学号')
姓名_x 学号 成绩 姓名_y 班级 0 Tom 2001 98 Tom 一班 1 Jack 2002 63 Jack 二班 2 Lucy 2003 88 Lucy 二班
pd.merge(df1,df2,how='left',on='学号')
姓名_x 学号 成绩 姓名_y 班级 0 Tom 2001 98 Tom 一班 1 Jack 2002 63 Jack 二班 2 Lucy 2003 88 Lucy 二班 3 Nick 2004 100 NaN NaN
pd.merge(df1,df2,how='right',on='学号')
姓名_x 学号 成绩 姓名_y 班级 0 Tom 2001 98 Tom 一班 1 Jack 2002 63 Jack 二班 2 Lucy 2003 88 Lucy 二班 3 NaN 2005 NaN Anny 一班
pd.merge(df1,df2,how='outer',on='学号')
姓名_x 学号 成绩 姓名_y 班级 0 Tom 2001 98 Tom 一班 1 Jack 2002 63 Jack 二班 2 Lucy 2003 88 Lucy 二班 3 Nick 2004 100 NaN NaN 4 NaN 2005 NaN Anny 一班
pd.merge(df1,df2,how='inner',on=['学号','姓名'])
姓名 学号 成绩 班级 0 Tom 2001 98 一班 1 Jack 2002 63 二班 2 Lucy 2003 88 二班
纵向拼接
import pandas as pd
import numpy as npdf3 = pd.DataFrame([['Tom','2001',98],['Jack','2002',63],['Lucy','2003',88],['Nick','2004',100]],columns=['姓名','学号','成绩'])df4 = pd.DataFrame([['Hali','2006',99],['Jerry','2007',40],['Nick','2004',100]],columns=['姓名','学号','成绩'])
pd.concat([df3,df4])#需要拼接在一起的DataFrame需要写成列表形式
姓名 学号 成绩 0 Tom 2001 98 1 Jack 2002 63 2 Lucy 2003 88 3 Nick 2004 100 0 Hali 2006 99 1 Jerry 2007 40 2 Nick 2004 100
pd.concat([df3,df4],ignore_index=True)#ignore_index选择True会舍弃原有索引,重新从零开始索引
姓名 学号 成绩 0 Tom 2001 98 1 Jack 2002 63 2 Lucy 2003 88 3 Nick 2004 100 4 Hali 2006 99 5 Jerry 2007 40 6 Nick 2004 100
- 重复行
默认不会删除重复行,如果需要删除,可以在拼接之后用drop_duplicates()
pd.concat([df3,df4],ignore_index=True).drop_duplicates()
姓名 学号 成绩 0 Tom 2001 98 1 Jack 2002 63 2 Lucy 2003 88 3 Nick 2004 100 4 Hali 2006 99 5 Jerry 2007 40
- 非共有列
会保留非公有列,对于没有对应数值会自动填充为Null
df5 = pd.DataFrame([['Tom','2001',98,85],['Jack','2002',63,94],['Lucy','2003',88,77],['Nick','2004',100,89]],columns=['姓名','学号','数学成绩','英语成绩'])df6 = pd.DataFrame([['Hali','2006',99,79],['Jerry','2007',40,86],['Money','2004',100,91]],columns=['姓名','学号','数学成绩','语文成绩'])pd.concat([df5,df6])
姓名 学号 数学成绩 英语成绩 语文成绩 0 Tom 2001 98 85.0 NaN 1 Jack 2002 63 94.0 NaN 2 Lucy 2003 88 77.0 NaN 3 Nick 2004 100 89.0 NaN 0 Hali 2006 99 NaN 79.0 1 Jerry 2007 40 NaN 86.0 2 Money 2004 100 NaN 91.0
dataframe横向和纵向拼接相关推荐
- python图片横向合并_python实现图片横向和纵向拼接
本文实例为大家分享了python实现图片横向和纵向拼接的具体代码,供大家参考,具体内容如下 直接上代码: # -*- coding:utf-8 -*- __author__ = 'ShawDa' fr ...
- python实现两张图片横向和纵向拼接
本文实例为大家分享了python实现图片横向和纵向拼接的具体代码, 这里主要用Python扩展库pillow中Image对象的paste()方法把两张图片拼接起来供大家参考,具体内容如下: 一.代码: ...
- python numpy 横向、纵向拼接图片
- dataframe 上下拼接_pandas DataFrame 的横向纵向拼接组合
concat 与其说是连接,更准确的说是拼接.就是把两个表直接合在一起.于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis . 函数的具体参数是: concat( ...
- python 多张图片进行横向与纵向的无损拼接,适用于图片宽高差不多的图片
前言 python 进行多张图片横向和纵向的拼接,适用于图片宽高差不多的图片,因为横向拼接会将图片等比例放大到一样的高度在拼接,纵向拼接会将图片等比例放大到一样的宽度再拼接.如果图片分辨率相差太大,将 ...
- matlab 数组横向纵向拼接
clear all; clc;ri0=1;shi0=11;fen0=12; shuo=ri0+shi0/24+fen0/(24*60); filepath='E:\夏季\观测\效率\'; dat=[f ...
- OpenCV-图像拼接(横向拼接纵向拼接)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 功能函数 // 图像拼接 cv::Mat ImageSplicing(vector<cv: ...
- HighNewTech:横向、纵向动图查看《Why资本寒冬》——根据中国四大行每年(2004年~2018年)贷款主要流向来看当下的资本寒冬
High&NewTech:横向.纵向看资本寒冬--根据中国四大行每年(2004年~2018年)贷款主要流向来看当下的资本寒冬 导读 资本寒冬,并不代表没有机会,相反,好机会将会更加沉淀,带来的 ...
- element的滚动去掉横向_textarea去掉滚动条 textarea横向或纵向滚动条的去掉方法
在IE下文本框textarea会显示滚动条(如下:) 去掉textarea横向或纵向滚动条办法: 可以通过overflow-x:hidden和overflow-y:hidden控制横向和纵向滚动条 要 ...
最新文章
- 套路、逻辑与思辨(道理的论证)
- UNIX再学习 -- 错误和警告
- WKWebView-填坑总结
- Tsinsen A1493 城市规划(DP + CDQ分治 + NTT)
- python数据拟合固定参数_如何将数据拟合到非理想二极管方程(隐式非线性函数)并检索参数 - python...
- C语言里面双分号是啥意思,问什么C程序里总是提示缺少分号;,而明明有分号?...
- linux 命令行管理,Linux命令行界面下的用户和组的管理
- 免费ftp网站服务器软件,免费ftp服务器软件,免费ftp服务器软件有哪些呢?好用推荐...
- linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
- python画雷达图-使用Python绘制雷达图
- java_oop_三大特性
- ubuntu 14.04 install teamviewer
- selenium滑块拖动验证(携程)
- 在这里,北上深成为“社科之城”
- 可持续时尚分论坛精彩回顾 | 第二届始祖数字化可持续发展峰会
- 《C++ Primer》第14章 14.3节习题答案
- MongoDB系列六(聚合).
- 基于FFmpeg的Java视频Mp4转GIF初探
- 北京移动宽带光猫 GM219-S 路由功能分离内置路由器改接外置路由器
- 带问题重读ijkPlayer
热门文章
- 磁盘管逻辑卷(LVM)
- Context-aware Attentional Pooling (CAP) for Fine-grained Visual Classification
- python plot画柱状图_matplotlib使用:画柱状图
- Python 代码实现ArcGis 标注Label转注记Annotation
- 用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?
- 兔子与狐狸c语言,狐狸和兔子
- 通过bitset库实现sha256
- 2019年新版新媒体运营学习路线,附完整视频+工具+运营经验
- 面向对象(高级)章节练习题
- 【19C】logmnr参考