pandas合并操作

在实际工作中,我们的数据经常存储在多个文件中,这时候就需要挨个读取出来,然后合并成一个DataFrame对象。在pandas中,可以通过pd.concatpd.merge来实现合并的功能。

pd.concat:

pd.concat(datas, axis=1),按照行或者列合并多个数据,axis=0为列索引,axis=1为行索引。比如我们以二手车数据为例,合并广州和北京的二手车数据。示例代码如下:

df_gz = pd.read_csv("data/guazi_gz.csv")
df_bj = pd.read_csv("data/guazi_bj.csv")df = pd.concat([df_gz, df_bj])

其中df_gzdf_bj的列名都是一样的,上述代码是将多行合并在一起。

如果要将不同列的数据合并在一起,那么则根据行索引名称进行拼接。

pd.merge:

pd.merge(left, right, how="inner", on=None, left_on=None, right_one=None)类似于SQL语句中的连接。都是指定按照共同键值对合并或者左右内连接。参数意义如下:

  • leftright:两个需要合并的DataFrame对象。

  • how
    

    :指定合并的方式。有以下可选参数。

    Merge Method SQL Join Name 描述
    left LEFT OUTER JOIN 只使用左边的DataFrame的key作为连接字段
    right RIGHT OUTER JOIN 只使用右边的DataFrame的key作为连接字段
    outer FULL OUTER JOIN 使用左边和右边的key值的并集连接
    inner INNER JOIN 使用左边和右边的key值的交集连接
  • on:按照哪个字段进行合并,指定的键必须在两个DataFrame中都存在。

  • left_on:左连接的字段。

  • right_on:右连接的字段。

pd.merge合并:

  1. 使用left_onright_on参数合并:
df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],'value': [1, 2, 3, 5]})df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],'value': [5, 6, 7, 8]})print(df1)
print(df2)

输出结果如下:

        lkey value
0   foo 1
1   bar 2
2   baz 3
3   foo 5rkey   value
0   foo 5
1   bar 6
2   baz 7
3   foo 8

执行merge操作代码如下:

pd.merge(df1, df2, left_on="lkey", right_on="rkey")

输出结果为:

        lkey value_x rkey    value_y
0   foo 1   foo 5
1   foo 1   foo 8
2   foo 5   foo 5
3   foo 5   foo 8
4   bar 2   bar 6
5   baz 3   baz 7
  1. 使用on参数合并:
    案例对象如下:
left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],'key2': ['K0', 'K1', 'K0', 'K1'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],'key2': ['K0', 'K0', 'K0', 'K0'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})

内连接:

result = pd.merge(left, right, on=['key1', 'key2'])

左连接:

result = pd.merge(left, right, how='left', on=['key1', 'key2'])

右连接:

result = pd.merge(left, right, how='right', on=['key1', 'key2'])

外连接:

result = pd.merge(left, right, how='outer', on=['key1', 'key2'])

pandas合并操作相关推荐

  1. 数据分析之Pandas合并操作总结

    ↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 pandas 是一个强大 ...

  2. Pandas常用操作总结

    文章目录 前言 1.DF常用的两种创建方式 方式一:通过np来生成 方式二:通过字典来生成 2.pandas常用的属性及方法 3.Pandas Select(数据选择) 4.Pandas Set_va ...

  3. Pandas知识点-合并操作combine

    Pandas知识点-合并操作combine combine是联合的意思,在Pandas中,combine()方法也是一种实现合并的方法,本文介绍combine()方法的用法. 一.combine_fi ...

  4. Pandas知识点-合并操作join

    Pandas知识点-合并操作join 在Pandas中,join()方法也可以用于实现合并操作,本文介绍join()方法的具体用法. 一.基础合并操作 join(other): 将一个或多个DataF ...

  5. Pandas知识点-合并操作merge

    Pandas知识点-合并操作merge merge()方法是Pandas中的合并操作,在数据处理过程中很常用,本文介绍merge()方法的具体用法. 一.基础合并操作 merge(left, righ ...

  6. pandas基础操作大全之数据合并

    在pandas 基础操作大全之数据读取&清洗&分析中介绍了pandas常见的数据处理操作,现在继续对pandas常用的数据合并操作做下介绍,便于大家快速了解,也方便后续需要时快速查询. ...

  7. 10000字的Pandas核心操作知识大全!

    来源丨数据不吹牛 工作中最近常用到pandas做数据处理和分析,特意总结了以下常用内容.想下载到本地可访问以下地址 https://github.com/SeafyLiang/Python_study ...

  8. python处理表格数据教程_用Python的pandas框架操作Excel文件中的数据教程

    引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要.作为额外的福利,我将会进行一些 ...

  9. python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...

    # python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...

最新文章

  1. 【Deep Learning】MLP识别手写 MNIST数字集
  2. Angular JS - 9 - SeaJS加载js模块
  3. 【数理知识】《矩阵论》方保镕老师-目录及关于符号的含义
  4. android can为啥能发收不到数据_拼多多登录时手机收不到短信验证码怎么办
  5. c++反汇编与逆向分析
  6. 银监会周末突发4号文件,18年贷款比想象的要难
  7. 数码相框项目之显示一张可放大、缩小、拖拽的图片
  8. Django的各种初识
  9. mybatisplus批量插入原理_【学习】热转印工艺原理、特点及工艺流程
  10. 前端基础:JavaScript 代码风格指南
  11. 在ISA2006以SSL-TO-HTTP方式发布内部的WEB服务器(二)
  12. Elasticsearch 7.9.3 发布
  13. Crashing Balloon ZOJ1003
  14. SWF也能修改!硕思闪客精灵专业Flash反编译工具
  15. Multisim14仿真基本模拟电路之 10.3.5有源滤波器电路的仿真实验与分析
  16. 多线程常见面试题(含常见项目遇到多线程问题解决及面试对话)
  17. TF-IDF入门与实例
  18. stm32f103r8t6的晶振频率_STM32F103R8T6
  19. kodi没有中文设置_超详细带你解决KODI找不到中文的问题(XB0X ONE/安卓通用)
  20. 对搜索引擎市场份额调查数据差异之补充

热门文章

  1. 国产FPGA芯片,机遇与挑战并存
  2. bing搜索PubHub发布商指南
  3. PAT甲级刷题记录-(AcWing)-(Day06树 8题)
  4. #父与子的编程之旅#第八章
  5. 数字如潮人如水:在这个时代,你是要当算法,还是当数据?
  6. 关于QPainter无法绘制问题
  7. 富士x-e4参数 怎么样?测评值得买吗?
  8. 关于Python和自动化
  9. GeoServer学习(初学WMS、WCS、WFS、WMTS)
  10. KVM+WebVirtMgr部署安装笔记