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
    
    '''
    
  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/wenqiangit/p/11252806.html
Copyright © 2011-2022 走看看