zoukankan      html  css  js  c++  java
  • pandas的merge函数

    pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x', '_y'),copy=True,indicator=False,validate=None)

    merge需要依据共同的某一列或者某一行来进行合并

    left:  左表(DataFrame)

    right:右表(DataFrame)

    how:连接方式

      left:   仅保留左表的键

      right: 仅保留右表的键

      outer:两表的键取并集

      inner:两表的键取交集

    on:用来对齐的那一列的名字,用到这个参数的时候一定要保证左表和右表用来对齐的那一列都有相同的列名.

    left_on  :左侧DataFarme中用作连接键的列.
    right_on:右侧DataFarme中用作连接键的列.

    left_index :  将左侧的行索引用作其连接键 .
    right_index :将右侧的行索引用作其连接键 .

    sort :根据连接键对合并后的数据进行排序,默认为True.有时在处理大数据集时,禁用该选项可获得更好的性能. 

    suffixes :字符串值元组,用于追加到重叠列名的末尾,默认为(‘_x’,‘_y’).例如,左右两个DataFrame对象都有‘data’,则结果中就会出现‘data_x’,‘data_y’.

    copy :设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中.

    import pandas as pd
    
    #左右字段相同时采用on
    df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
    df2=pd.DataFrame({'name':['kate','herz','sally'],'score':[70,60,90]})
    pd.merge(df1,df2,on=["name"],how="outer")      
    
    
    #当左右连接字段不相同时,使用left_on,right_on
    df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
    df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]})
    pd.merge(df1,df2,left_on=["name"],right_on=["call_name"],how="outer") #outer 外连接取并集,并用nan填充”
    
    #合并后删除重复的列
    df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
    df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]})
    
    pd.merge(df1,df2,left_on='name',right_on='call_name').drop('name',axis=1)
    
    #按照索引位置合并
    df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}).set_index("name")
    df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}).set_index("call_name")
    pd.merge(df1,df2,how="outer",left_index=True,right_index=True)      

      

  • 相关阅读:
    大数据基础---Scala_Array
    大数据基础---Scala流程控制语句
    大数据基础---Scala基本数据类型和运算符
    大数据基础---Scala简介及开发环境配置
    大数据基础---Flink_Standalone_集群部署
    大数据基础---Flink状态管理与检查点机制
    大数据基础---Flink_窗口模型
    大数据基础---Flink_Data_Sink
    IDL keywords 检查
    IDL 多线程
  • 原文地址:https://www.cnblogs.com/wzdLY/p/9673165.html
Copyright © 2011-2022 走看看