丢弃Excel,Pandas一行搞定

AI-摘要
PFS GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
上次介绍了pandas的多条件筛选,这些都是一些数据处理的必要技能,也不贪多,咱们每次学习一点。
这次咱们说说pandas的两个表的连接技能merge,也就是根据一个表的条件去匹配另一个表的内容。
话不多说,直接正文。
准备数据
先导入模块
1 | import pandas as pd |
输出内容:
df1内容
1 | 姓名 号码 |
df2内容:
1 | 姓名 号码 日期 方案 |
连接
函数说明:pd.merge(left=df1(需要匹配的原始表), right=df2(被匹配的数据表), on=“姓名”(需要匹配的条件列), how=“inner”(连接方式))
内连接
how默认为inner:内连接查询特点是df1有匹配的才显示,不匹配的不显示
1 | df = pd.merge(left=df1, right=df2, on="姓名", how="inner") |
输出:
1 | 姓名 号码_x 号码_y 日期 方案 |
df1表里需要匹配的姓名里,在df2里面能匹配上姓名的都会列出来,而匹配不上的,都不会列出来,包括df1里面的内容
小提示:如果两表有相同列名的,会自动在列名后面加
_x,_y来区分
外连接
1 | how="outer"`为外连接:查询特点是`无论匹不匹配`都显示,对应的值`没有则显示空 |
输出:
1 | 姓名 号码_x 号码_y 日期 方案 |
df1表里索引13里的齐四无匹配,是空值,而在df2里面的内容都会列出来,和df1匹配不上的其它列的内容也是空值
注意:这有点互相匹配的意思哟
左连接
how="left"为左连接:查询表示左边的值全部显示,如右边无匹配则显示空。但是右边有的值匹配不了左边则不显示
1 | df = pd.merge(left=df1, right=df2, on="姓名", how="outer") |
输出:
1 | 姓名 号码_x 号码_y 日期 方案 |
df1表里索引13里的齐四还是无匹配,是空值,而在df2里面的内容就不会列出来了
右连接
how="right"为右连接:与左连接相反
1 | df = pd.merge(left=df1, right=df2, on="姓名", how="right") |
输出:
1 | 姓名 号码_x 号码_y 日期 方案 |
右连接正好与左连接相反,df1里面匹配不上的不显示,df2里面的内容全都出来了,匹配不上df1的其它列值则为空值
PS这完全是反向匹配呀
https://blog.panjoel.top/%E4%B8%A2%E5%BC%83Excel%EF%BC%8CPandas%E4%B8%80%E8%A1%8C%E6%90%9E%E5%AE%9A/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Panjoel's Blog!
评论
匿名评论
你无需删除空行,直接评论以获取最佳展示效果









