zoukankan      html  css  js  c++  java
  • pandas之表的联结

    导语

    在数据分析前时我们经常需要整合数据,经常需要将表与表联结起来,下面介绍两种常用的方法。

    导入要用的数据 

    1 d1=pd.DataFrame(np.random.randn(5,3),index=range(5),columns=["a","b","c"])
    2 d2=pd.DataFrame(np.random.randn(5,3),index=range(5),columns=["a","b","c"])
    3 d3=pd.DataFrame(np.random.randn(5,3),index=range(2,7),columns=["d","b","c"])

    d1

    d2

    d3

    •concat

    按某一维度拼接pandas对象

    pd.concat(objs,axis=0, join='outer',join_axes=None, ignore_index=False, keys=None, levels=None,names=None, verify_integrity=False,sort=None, )

    outer为并,inner为交,axis=0按照列名联结,axis=1按照index联结 

    1 d12=pd.concat([d1,d2],join="outer",axis=0)
    2 d12

    d13_in=pd.concat([d1,d3],join="inner",axis=1)#axis=1根据index联结
    d13_in

    d13_out=pd.concat([d1,d3],join="outer",axis=1)
    d13_out

    1 d13_out0=pd.concat([d1,d3],join="outer",axis=0)
    2 d13_out0

    1 d13_in0=pd.concat([d1,d3],join="inner",axis=0)
    2 d13_in0

    •merge

    pd.merge( left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,indicator=False)

    how可以是:inner(默认),outer,lefti,right
    on=[key1,key2]连接俩个数据的共同名的键值,当然可以用left_on=None,right_on=None,left_index=False,right_index=False随意组合

    1  d12=pd.merge(d1,d3,how="outer",left_index=True,right_index=True)
    2  d12

    1 d13=pd.merge(d1,d3,how="inner",left_index=True,right_index=True)
    2 d13

    总结:merge更像是SQL中的join按照指定的列名来联结表,而concat则是按照轴来联结表

  • 相关阅读:
    Goahead在linux环境下安装部署
    vim卡住怎么办
    Clickhouse 实现 row number功能
    JavaScript ES6 模块化
    MySQL012事务的四个基本特征是什么
    MySQL015简述mysql中索引类型有哪些,以及对数据库的性能的影响
    MySQL010MySQL执行计划怎么看
    JavaScript ES6 Promise
    MySQL011如何处理MySQL的慢查询
    MySQL009MySQL为什么需要主从复制和读写分离
  • 原文地址:https://www.cnblogs.com/ye20190812/p/13438388.html
Copyright © 2011-2022 走看看