zoukankan      html  css  js  c++  java
  • pandas-16 pd.merge()的用法

    pandas-16 pd.merge()的用法

    使用过sql语言的话,一定对join,left join, right join等非常熟悉,在pandas中,merge的作用也非常类似。
    如:pd.merge(df1, df2) 找到一个外键,然后将两条数据合并成一条。
    直接上例子:

    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame
    
    df1 = DataFrame({'key':['X', 'Y', 'Z'], 'data_set_1':[1, 2, 3]})
    print(df1)
    '''
       data_set_1 key
    0           1   X
    1           2   Y
    2           3   Z
    '''
    
    df2 = DataFrame({'key':['X', 'B', 'C'], 'data_set_2':[4, 5, 6]})
    print(df2)
    '''
       data_set_2 key
    0           4   A
    1           5   B
    2           6   C
    '''
    
    # 感觉这个就像 操作 sql 的感觉一样
    # 找到一个外键 然后将两条数据拿到手
    print(pd.merge(df1, df2))
    '''
       data_set_1 key  data_set_2
    0           1   X           4
    '''
    
    # 第二个参数 on 代表 要在 哪一个 列上 进行 merge
    # print(pd.merge(df1, df2, on='data_set_1')) # 报错
    
    # inner 拿出的是两边都有的值
    print(pd.merge(df1, df2, on='key', how='inner'))
    '''
       data_set_1 key  data_set_2
    0           1   X           4
    '''
    
    # left 按照left的dataframe为基准,右边值为空的话就默认nan
    print(pd.merge(df1, df2, on='key', how='left'))
    '''
       data_set_1 key  data_set_2
    0           1   X         4.0
    1           2   Y         NaN
    2           3   Z         NaN
    '''
    # 同理 right 按照右边为基准
    print(pd.merge(df1, df2, on='key', how='right'))
    '''
       data_set_1 key  data_set_2
    0         1.0   X           4
    1         NaN   B           5
    2         NaN   C           6
    '''
    
    # outer 将 left right 的结合, 所有的key都拿出来,哪边缺失,就补充nan
    print(pd.merge(df1, df2, on='key', how='outer'))
    '''
       data_set_1 key  data_set_2
    0         1.0   X         4.0
    1         2.0   Y         NaN
    2         3.0   Z         NaN
    3         NaN   B         5.0
    4         NaN   C         6.0
    
    '''
    
  • 相关阅读:
    学习笔记-php图像等比例剪裁-2016.4.7
    学习日记-2016.3.31
    学习日记--2016.3.30
    I/O扩展篇(基于74HC164/74HC165)
    Visual SVN Server启动失败0x8007042a错误
    CC3000 主机驱动API介绍
    CC3000 SPI接口编程介绍
    struct和typedef struct彻底明白了
    MSP430学习笔记:UART
    DWORD类型的IP地址转换为CString字符串
  • 原文地址:https://www.cnblogs.com/wenqiangit/p/11252806.html
Copyright © 2011-2022 走看看