pandas表连接 索引上的合并方法

如下所示:

left1 = pd.DataFrame({‘key':[‘a','b','a','a','b','c'],'value':range(6)})
right1 = pd.DataFrame({‘group_val':[3.5,7]},index = [‘a','b'])
print(left1)
print(right1)
result = pd.merge(left1,right1,left_on='key',right_index=True)
print(result)

层次化数据的索引

lefth = pd.DataFrame({‘key1':[‘Ohio','Ohio','Ohio','Nevada','Nevada'],
‘key2':[2000,2001,2002,2001,2002],
‘data':np.arange(5)})
print(lefth)
righth = pd.DataFrame(np.arange(12).reshape(6,2),index = [[‘Nevada','Nevada','Ohio','Ohio','Ohio','Ohio'],
[2001,2000,2000,200,2001,2002]])
print(righth)
result = pd.merge(lefth,righth,left_on=[‘key1','key2'],right_index=True)
print(result)

以上代码如果想改为外部连接 how = ‘outer' 就可以了

同时合并双方索引

left2 = pd.DataFrame([[1,2],[3,4],[5,6]],index=[‘a','c','e'],columns=[‘Ohio','Neveda'])
right2 = pd.DataFrame([[7,8],[9,10],[11,12],[13,14]],index=[‘b','c','d','e'],columns=[‘Missouri','Alabma'])
print(left2)
print(right2)
result = pd.merge(left2,right2,how='outer',left_index=True,right_index=True)
print(result)

以上这篇pandas表连接 索引上的合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用pandas对两个dataframe进行join的实例

    需求: 两个文件,一个文件为统计报表,里面含有手机号,另一个文件为手机号段归属地,含有手机号码前七位对应的地区.需要对统计报表进行处理,将手机号所在的归属地加入到统计报表中,使用pandas提供的join功能来实现,代码如下: #coding=utf-8 from pandas import Series,DataFrame import pandas as pd #reader1 = pd.read_csv('Dm_Mobile.txt',iterator=True,encoding="gb2

  • pandas DataFrame实现几列数据合并成为新的一列方法

    问题描述 我有一个用于模型训练的DataFrame如下图所示: 其中的country.province.city.county四列其实是位置信息的不同层级,应该合成一列用于模型训练 方法: parent_teacher_data['address'] = parent_teacher_data['country']+parent_teacher_data['province']+parent_teacher_data['city']+parent_teacher_data['county'] 就

  • Pandas 按索引合并数据集的方法

    如下所示: import numpy as np import pandas as pd from pandas import Series,DataFrame 一.merge函数 left1 = DataFrame({'水果':['苹果','梨','草莓'], '价格':[3,4,5], '数量':[9,8,7]}).set_index('水果') right1 = DataFrame({'水果':['苹果','草莓'], '产地':['美国','中国']}) print(left1) pri

  • python merge、concat合并数据集的实例讲解

    数据规整化:合并.清理.过滤 pandas和python标准库提供了一整套高级.灵活的.高效的核心函数和算法将数据规整化为你想要的形式! 本篇博客主要介绍: 合并数据集:.merge()..concat()等方法,类似于SQL或其他关系型数据库的连接操作. 合并数据集 1) merge 函数参数 参数 说明 left 参与合并的左侧DataFrame right 参与合并的右侧DataFrame how 连接方式:'inner'(默认):还有,'outer'.'left'.'right' on

  • Pandas 合并多个Dataframe(merge,concat)的方法

    在数据处理的时候,尤其在搞大数据竞赛的时候经常会遇到一个问题就是,多个表单的合并问题,比如一个表单有user_id和age这两个字段,另一个表单有user_id和sex这两个字段,要把这两个表合并成只有user_id.age.sex三个字段的表怎么办的,普通的拼接是做不到的,因为user_id每一行之间不是对应的,像拼积木似的横向拼接肯定是不行的. pandas中有个merge函数可以做到这个实用的功能,merge这个词会点SQL语言的应该都不陌生. 下面说说merge函数怎么用: df = p

  • python pandas中对Series数据进行轴向连接的实例

    有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas import Series,DataFrame In [18]: series1 = Series(range(2),index = ['a','b']) In [19]: series2 = Series(range(3),index = ['c','d','e']) In [20]: serie

  • 在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例

    最近在工作中,遇到了数据合并.连接的问题,故整理如下,供需要者参考~ 一.concat:沿着一条轴,将多个对象堆叠到一起 concat方法相当于数据库中的全连接(union all),它不仅可以指定连接的方式(outer join或inner join)还可以指定按照某个轴进行连接.与数据库不同的是,它不会去重,但是可以使用drop_duplicates方法达到去重的效果. concat(objs, axis=0, join='outer', join_axes=None, ignore_ind

  • python pandas dataframe 按列或者按行合并的方法

    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 是

  • pandas表连接 索引上的合并方法

    如下所示: left1 = pd.DataFrame({'key':['a','b','a','a','b','c'],'value':range(6)}) right1 = pd.DataFrame({'group_val':[3.5,7]},index = ['a','b']) print(left1) print(right1) result = pd.merge(left1,right1,left_on='key',right_index=True) print(result) 层次化数

  • pandas数据清洗,排序,索引设置,数据选取方法

    此教程适合有pandas基础的童鞋来看,很多知识点会一笔带过,不做详细解释 Pandas数据格式 Series DataFrame:每个column就是一个Series 基础属性shape,index,columns,values,dtypes,describe(),head(),tail() 统计属性Series: count(),value_counts(),前者是统计总数,后者统计各自value的总数 df.isnull() df的空值为True df.notnull() df的非空值为T

  • mysql server 5.5连接不上的解决方法

    mysql连接不上了的解决办法,供大家参考,具体内容如下 昨天用着好好的,第二天突然连接不上了mysql数据库,并且报错: 仔细想了想原因很有可能是因为不经意间删除了mysql自带表中的一些数据信息导致的表损坏,之前也是把oracle给弄坏了..... 所以不要随便的删除系统的表信息 进入服务,找到mysql,发现服务已经停止,重新启动该服务,发现无法重启,如下 无法重启报1067 并且在dos命令中进入msyql也是不可以的 然后我去事务管理器中查看了一下系统的日志信息发现mysql出现了错误

  • mysql服务启动却连接不上的解决方法

    mysql服务启动,但是连接不上,如何解决? 登陆报错: root@localhost:~# mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) root@localhost:~# service mysqld restart Shutting down MySQL.. [ OK

  • MySQL远程连接不上的解决方法

    之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服务器上又遇到这个问题,记录一下解决过程. 1.排除网络或防火墙问题 先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题.然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙. 配置防火墙,开启3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW

  • jsp 连接sql server 2008 连接不上的解决方法

    1.首先是如果你遇到javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver这个错误, 那么估计你应该把Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 改成Class.forName("com.microsoft.sqlserver.jd

  • Oracle 9i轻松取得建表和索引的DDL语句

    正在看的ORACLE教程是:Oracle 9i轻松取得建表和索引的DDL语句.我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事.我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用.而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到. 从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候.在Oracle 9i中,我们可以直接通过执行dbms_metadata从

  • Oracle9i取得建表和索引的DDL语句

    正在看的ORACLE教程是:Oracle9i取得建表和索引的DDL语句.我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事.我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用.而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到. 从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候.在Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字

  • Oracle轻松取得建表和索引的DDL语句

    我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事.我们可以通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用.而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到. 从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候.在Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字典中查处DDL语句.使用这个功能强大的工具,我们可以获得单个对象或整个SCHEMA

  • 浅谈pandas用groupby后对层级索引levels的处理方法

    层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count.sum.size等等,没有更深入的利用groupby后的数据进行处理.近来数据处理的时候有遇到这类问题花了一点时间,所以这里记录以及复习一下:(以下皆是个人实践后的理解) 我使用一个实例来讲解下面的问题:一张数据表中有三列(动物物种.物种品种.品种价格),选出每个物种从大到小品种的前两种,最后只需要品种和价格这两列. 以上这张表是我们后面需要处理的数据表 (物种 品种 价格) levels

随机推荐