zoukankan      html  css  js  c++  java
  • pandas --合并操作join函数

    join方法

    dataframe内置的join方法是一种快速合并的方法。它默认以index作为对齐的列。

    1.3.1 how 参数

    join中的how参数和merge中的how参数一样,用来指定表合并保留数据的规则。

    具体可见前面的 how 说明。

    1.3.2 on 参数

    在实际应用中如果右表的索引值正是左表的某一列的值,这时可以通过将 右表的索引 和 左表的列 对齐合并这样灵活的方式进行合并。

    ex 1

    In [59]: left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
       ....:                      'B': ['B0', 'B1', 'B2', 'B3'],
       ....:                      'key': ['K0', 'K1', 'K0', 'K1']})
       ....: 
    
    In [60]: right = pd.DataFrame({'C': ['C0', 'C1'],
       ....:                       'D': ['D0', 'D1']},
       ....:                       index=['K0', 'K1'])
       ....: 
    
    In [61]: result = left.join(right, on='key')

    这里写图片描述

    1.3.3 suffix后缀参数

    如果和表合并的过程中遇到有一列两个表都同名,但是值不同,合并的时候又都想保留下来,就可以用suffixes给每个表的重复列名增加后缀。

    In [79]: result = pd.merge(left, right, on='k', suffixes=['_l', '_r'])

    这里写图片描述

    * 另外还有lsuffix 和 rsuffix分别指定左表的后缀和右表的后缀。

    1.4 组合多个dataframe

    一次组合多个dataframe的时候可以传入元素为dataframe的列表或者tuple。一次join多个,一次解决多次烦恼~

    In [83]: right2 = pd.DataFrame({'v': [7, 8, 9]}, index=['K1', 'K1', 'K2'])
    
    In [84]: result = left.join([right, right2])
    • 1
    • 2
    • 3

    这里写图片描述

    1.5 更新表的nan值

    1.5.1 combine_first

    如果一个表的nan值,在另一个表相同位置(相同索引和相同列)可以找到,则可以通过combine_first来更新数据

    1.5.2 update

    如果要用一张表中的数据来更新另一张表的数据则可以用update来实现

    1.5.3 combine_first 和 update 的区别

    使用combine_first会只更新左表的nan值。而update则会更新左表的所有能在右表中找到的值(两表位置相对应)。

  • 相关阅读:
    SSH 连接超时解决办法
    alter system switch logfile和alter system archive log current 的区别
    Oracle 删除归档日志脚本
    Oracle 11g 新特性简介
    Oracle sqlplus 常用命令总结
    Oracle 11g 新特性简介
    计算文件的MD5值上传到服务器 下载验证文件是否被篡改
    看不下去的代码放这有机会用手机看。。。
    C++ Primer第一章学习笔记——C++初邂逅
    OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12859454.html
Copyright © 2011-2022 走看看