pandas-16 pd.merge()的用法
pandas-16 pd.merge()的用法
使用过sql语言的话,一定对join,left join, right join等非常熟悉,在pandas中,merge的作用也非常类似。
如:pd.merge(df1, df2) 找到一个外键,然后将两条数据合并成一条。
直接上例子:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
df1 = DataFrame({'key':['X', 'Y', 'Z'], 'data_set_1':[1, 2, 3]})
print(df1)
'''
data_set_1 key
0 1 X
1 2 Y
2 3 Z
'''
df2 = DataFrame({'key':['X', 'B', 'C'], 'data_set_2':[4, 5, 6]})
print(df2)
'''
data_set_2 key
0 4 A
1 5 B
2 6 C
'''
# 感觉这个就像 操作 sql 的感觉一样
# 找到一个外键 然后将两条数据拿到手
print(pd.merge(df1, df2))
'''
data_set_1 key data_set_2
0 1 X 4
'''
# 第二个参数 on 代表 要在 哪一个 列上 进行 merge
# print(pd.merge(df1, df2, on='data_set_1')) # 报错
# inner 拿出的是两边都有的值
print(pd.merge(df1, df2, on='key', how='inner'))
'''
data_set_1 key data_set_2
0 1 X 4
'''
# left 按照left的dataframe为基准,右边值为空的话就默认nan
print(pd.merge(df1, df2, on='key', how='left'))
'''
data_set_1 key data_set_2
0 1 X 4.0
1 2 Y NaN
2 3 Z NaN
'''
# 同理 right 按照右边为基准
print(pd.merge(df1, df2, on='key', how='right'))
'''
data_set_1 key data_set_2
0 1.0 X 4
1 NaN B 5
2 NaN C 6
'''
# outer 将 left right 的结合, 所有的key都拿出来,哪边缺失,就补充nan
print(pd.merge(df1, df2, on='key', how='outer'))
'''
data_set_1 key data_set_2
0 1.0 X 4.0
1 2.0 Y NaN
2 3.0 Z NaN
3 NaN B 5.0
4 NaN C 6.0
'''
pandas-16 pd.merge()的用法的更多相关文章
- python数据表的合并(python pandas join() 、merge()和concat()的用法)
merage# pandas提供了一个类似于关系数据库的连接(join)操作的方法<Strong>merage</Strong>,可以根据一个或多个键将不同DataFrame中 ...
- pandas-09 pd.groupby()的用法
pandas-09 pd.groupby()的用法 在pandas中的groupby和在sql语句中的groupby有异曲同工之妙,不过也难怪,毕竟关系数据库中的存放数据的结构也是一张大表罢了,与da ...
- Pandas中关于 loc \ iloc 用法的理解
转载至:https://blog.csdn.net/w_weiying/article/details/81411257 loc函数:通过行索引 "Index" 中的具体值来取行数 ...
- Pandas | Dataframe的merge操作,像数据库一样尽情join
今天是pandas数据处理第8篇文章,我们一起来聊聊dataframe的合并. 常见的数据合并操作主要有两种,第一种是我们新生成了新的特征,想要把它和旧的特征合并在一起.第二种是我们新获取了一份数据集 ...
- Pandas高级教程之:GroupBy用法
Pandas高级教程之:GroupBy用法 目录 简介 分割数据 多index get_group dropna groups属性 index的层级 group的遍历 聚合操作 通用聚合方法 同时使用 ...
- pandas 7 合并 merge 水平合并,数据会变宽
pd.merge( df1, df2, on=['key1', 'key2'], left_index=True, right_index=True, how=['left', 'right', 'o ...
- SQL2008中Merge的用法
在SQL2008中,新增了一个关键字:Merge,这个和Oracle的Merge的用法差不多,只是新增了一个delete方法而已.下面就是具体的使用说明: 首先是对merge的使用说明: merge ...
- SQL中Merge的用法
SQL中Merge的用法 Merge的用法 Merge可以完成以下功能: 1. 两个表之间数据的更新 2. 进行进销存更新库存 3. 进行表之间数据的复制 语法说明: 1. 在语句结束后一定要 ...
- SQL2008中Merge的用法(轉載)
在SQL2008中,新增了一个关键字:Merge,这个和Oracle的Merge的用法差不多,只是新增了一个delete方法而已.下面就是具体的使用说明: 首先是对merge的使用说明: merge ...
随机推荐
- 201871010109-胡欢欢《面向对象程序设计(java)》第四周学习总结会
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201871010110-李华《面向对象程序设计(java)》第四周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- NGUI里的sprite和label有白色的边框
问题描述:NGUI里的sprite和label有白色的边框,而原图一切正常 如图: 解决方案: 给Sprite 边缘左右更增加1,这样拉伸的时候就忽略了左右1的位置,图片就不会显示白色边框了
- 设置 npm 源为淘宝镜像
淘宝 npm 网址 https://npm.taobao.org/ 修改 npm config set registry http://registry.npm.taobao.org/ 还原 npm ...
- 第08组 Beta冲刺(5/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 部署新服务器 展示GitHub当日代码/文档签入记录 接下来的计划 准备 ...
- 每日一问:详细说一下 MeasureSpec.UNSPECIFIED
详细说一下 MeasureSpec.UNSPECIFIED 前面的文章 我留下了一个疑惑,那就是到底为什么 NestedScrollView 要把子 View 的测量模式强行设置为 MeasureSp ...
- web前端图片模糊到清晰的实现过程
在网页图片显示的时候,会发现许多网站采用了先模糊,然后在慢慢清晰的过程,这样的加载用户体验是比较好的,那么如何实现? 默认加载2张图片,一张缩略图,一张原图,当打开网页的时候默认只显示缩略图,然后我们 ...
- Prometheus 介绍
我们知道zabbix在监控界占有不可撼动的地位,功能强大.但是对容器监控显得力不从心.为解决监控容器的问题,引入了prometheus技术.prometheus号称是下一代监控.接下来的文章打算围绕p ...
- 《Linux就该这么学》自学笔记_ch21_使用Git分布式版本控制系统
<Linux就该这么学>自学笔记_ch21_使用Git分布式版本控制系统 文章主要内容: 分布式版本控制系统 使用Git服务程序 提交数据 移除数据 移动数据 历史记录 还原数据 管理标签 ...
- 框架Ray
高性能最终一致性框架Ray之基本概念原理 一.Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案. 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且 ...