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

  • 相关阅读:
    elasticHD
    python3--socketIO_client 摸索怕坑指南
    治疗重新造轮子症系列——递归查询json数据中所有的key值
    REST FRAME WORK--认证 权限 Xadmin
    REST FRAME WORK--视图基类 视图集
    REST FRAME WOEK 请求与响应&视图
    REST FRAME WORK--1
    VUE--axios--对象提供的属性功能
    VUE--组件化开发--VUE-CLI
    Vue中发送ajax请求——axios使用详解
  • 原文地址:https://www.cnblogs.com/vincent-sh/p/12859454.html
Copyright © 2011-2022 走看看