Pandas(Task6)

连接
1、外连接又叫全连接
2、关系型连接中,pandas可以使用merge和join,通过how来代表连接形式,分为左连接 left 、右连接 right 、内连接 inner 、外连接 outer。
3、如果出现重复的键应该如何处理?只需把握一个原则,即只要两边同时出现的值,就以笛卡尔积的方式加入,如果单边出现则根据连接形式进行处理。
4、merge用法(值连接)
连接相同列:

image.png

on也可以连接多个键值,此时用列表括起来:
image.png

连接不同名字的两列,使用left_on和right_on:
image.png

如果两个表中的列出现了重复的列名,那么可以通过 suffixes 参数指定
即把第一个表和第二个表中除了连接键之外,相同名字的列后面加不同后缀以示区别
image.png

5、join(索引连接)
pandas中利用Join函数来处理索引连接,就是把索引当成键进行连接,可以对重复的列指定左右后缀 lsuffix 和 rsuffix ,这样每当有重复的列就会加上你设置的后缀,以示区分。 on 参数指索引名,单层索引时省略参数表示按照当前索引连接
例如下面,name是单索引,所以join中不需要用On来指定所要连接了索引了,默认为name。
image.png

image.png

6、concat(方向连接)
有时候用户并不关心以哪一列为键来合并,只是希望把两个表或者多个表按照纵向或者横向拼接,为这种需求, pandas 中提供了 concat 函数来实现。
在 concat 中,最常用的有三个参数,它们是 axis, join, keys ,分别表示拼接方向,连接形式,以及在新表中指示来自于哪一张旧表的名字。这里需要特别注意, join 和 keys 与之前提到的 join 函数和键的概念没有任何关系。
在默认状态下的 axis=0 ,表示纵向拼接多个表,常常用于多个样本的拼接;而 axis=1 表示横向拼接多个表,常用于多个字段或特征的拼接。
axis = 0,默认的:
image.png

axis = 1:
image.png

image.png

当确认要使用多表直接的方向合并时,尤其是横向的合并,可以先用 reset_index 方法恢复默认整数索引再进行合并,防止出现由索引的误对齐和重复索引的笛卡尔积带来的错误结果。
keys参数:
keys 参数的使用场景在于多个表合并后,用户仍然想要知道新表中的数据来自于哪个原表,这时可以通过 keys 参数产生多级索引进行标记。
image.png

7、序列和表的合并
其实可以简单理解为:在表后插入记录
如果需要插入的记录是多条的,其实相当于两个dataframe连接,这个时候可以用concat,如果是一条记录,那大多数情况是一个Series,这个时候我们才来讨论如何把Series放到表里面。
下面讨论两种情况,一种是添加行,一种是添加列。
想要把一个序列追加到表的行末或者列末,则可以分别使用 append 和 assign 方法
append添加行:
在 append 中,如果原表是默认整数序列的索引,那么可以使用 ignore_index=True 对新序列对应的索引自动标号,否则必须对 Series 指定 name 属性。
想要在df中添加姓名是Wu Wang 年龄是21的一条记录。
image.png

assign添加列:
虽然可以利用其添加新的列,但一般通过 df['new_col'] = ... 的形式就可以等价地添加新列的缺点是它会直接在原表上进行改动,而 assign 返回的是一个临时副本
image.png

8、类连接操作
除了上述介绍的若干连接函数之外, pandas 中还设计了一些函数能够对两个表进行某些操作,这里把它们统称为类连接操作。
8.1 compare
在 1.1.0 后引入的新函数,它能够比较两个表或者序列的不同处并将其汇总展示
如果想要完整显示表中所有元素的比较情况,可以设置 keep_shape=True
image.png

image.png

8.2 combine
这个比较少用。需要重点看一下
combine 函数能够让两张表按照一定的规则进行组合,在进行规则比较时会自动进行列索引的对齐。对于传入的函数而言,每一次操作中输入的参数是来自两个表的同名 Series ,依次传入的列是两个表列名的并集,例如下面这个例子会依次传入 A,B,C,D 四组序列,每组为左右表的两个序列。同时,进行 A 列比较的时候, s2 指代的就是一个全空的序列,因为它在被调用的表中并不存在,并且来自第一个表的序列索引会被 reindex 成两个索引的并集。具体的过程可以通过在传入的函数中插入适当的 print 方法查看。
这里给了一个例子:
选出对应索引位置较小的元素。
image.png

设置 overtwrite 参数为 False 可以保留 被调用表 中未出现在传入的参数表中的列,而不会设置未缺失值
image.png

8.3 combine_first
其功能是在对两张表组合时,若第二张表中的值在第一张表中对应索引位置的值不是缺失状态,那么就使用第一张表的值填充。(first的含义原来是这样哈哈哈)
image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 1. 课程内容 SQL中最常见的操作莫过于将好几张表连接(JOIN)起来查看某些字段,与之类似,Pandas具有功...
    木头里有虫911阅读 677评论 0 3
  • Pandas的数据结构 pandas 中使用Series和DataFrame对象存储数据 Series 1.什么是...
    当_下阅读 712评论 1 4
  • 目录: 1.统计分析入门 2.分组 groupby() 3.数据可视化 4.数据合并,重组 5.数据类型转换 1....
    鲸鱼酱375阅读 1,695评论 0 1
  • 1. 基本知识 · Anaconda 定义: 包管理器,附带一大批常用数据科学包,包括conda、Python等 ...
    QinChu阅读 504评论 0 0
  • 关系型连接 在关系型连接中, 键 是十分重要的,往往用 on 参数表示。另一个重要的要素是连接的形式。在 pand...
    罐罐儿111阅读 534评论 1 1