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则会更新左表的所有能在右表中找到的值(两表位置相对应)。

  • 相关阅读:
    在 LR 中如何解决Socket 接收数据的验证
    UE 的文件比较方法
    使用plSQL连接Oracle报错,SQL*Net not properly installed和TNS:无法解析指定的连接标识符
    plsql developer连接oracle数据库
    将列表中的字符以‘*’连接生成一个新的字符串
    ElasticSearch之CURL操作
    MySQL 5.7.21 免安装版配置教程
    C# IL DASM 使用-破解c#软件方法
    For-each Loop,Index++ Loop , Iterator 那个效率更高
    10种简单的Java性能优化
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12859454.html
Copyright © 2011-2022 走看看