zoukankan      html  css  js  c++  java
  • python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca

    原文 :https://blog.csdn.net/milton2017/article/details/54406482/

    python  把几个DataFrame合并成一个DataFrame——merge,append,join,conca

    pandas provides various facilities for easily combining together Series, DataFrame, and Panel objects with various kinds of set logic for the indexes and relational algebra functionality in the case of join / merge-type operations.
     
    1、merge
    pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
             left_index=False, right_index=False, sort=True,
             suffixes=('_x', '_y'), copy=True, indicator=False)
    left 对象
    right 另一个对象
    on︰ 加入 (名称)必须 综合对象找到如果通过 left_index  right_index 推断 DataFrames 交叉点连接
    left_on 左边综合使用作为可以列名数组长度等于长度综合
    right_on 正确综合用作可以列名数组长度等于长度综合
    left_index 如果为 True使用索引 (行标签) 综合作为联接键。多重 (层次) 的综合级别必须匹配联接综合数目
    right_index 相同用法作为正确综合 left_index
    how︰ 之一 '左','右','外在'、 '内部'。默认内部每个方法详细说明参阅
    sort︰ 综合通过联接字典顺序结果进行排序默认值为 True设置 False提高性能极大地许多情况下
    suffixes︰ 字符串后缀不适用于重叠元组默认值 ('_x','_y')。
    copy︰ 即使重新索引必要总是传递综合对象复制数据 (默认值True)许多情况下不能避免可能会提高性能 / 内存使用情况可以避免复制上述案件有些病理尽管如此提供选项
    indicator︰ 将添加输出综合呼吁 _merge 信息一行_merge 绝对类型观测合并出现 '左' 的综合观测合并会出现 '正确' 的综合两个如果观察合并关键发现两个 right_only left_only 的
     
    1.result = pd.merge(left, right, on='key')
    2.result = pd.merge(left, right,on=['key1', 'key2'])
    
    
    3.result = pd.merge(left, right, how='left', on=['key1', 'key2'])
    4.result = pd.merge(left, right, how='right', on=['key1', 'key2'])
    5.result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
     
    2、append
    1.result = df1.append(df2)
    2.result = df1.append(df4)
    3.result = df1.append([df2, df3])
    4.result = df1.append(df4, ignore_index=True)
     
    4、join
    left.join(right, on=key_or_keys)
    pd.merge(left, right, left_on=key_or_keys, right_index=True,
          how='left', sort=False)
    1.result = left.join(right, on='key')
    2.result = left.join(right, on=['key1', 'key2'])
    3.result = left.join(right, on=['key1', 'key2'], how='inner')
    4、concat
    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
              keys=None, levels=None, names=None, verify_integrity=False,
              copy=True)
    objs︰ 一个序列系列 综合面板对象映射如果字典传递作为参数使用排序除非传递种情况下选择 (见下文)。任何没有任何反对默默地丢弃除非他们没有种情况下引发 ValueError
    axis: {0,1,...},默认值为 0。连接沿
    join: {'内部'、 '外'},默认 '外'。如何处理其他 axis(es) 索引联盟 交叉口
    ignore_index 布尔值 默认 False如果为 True不要串联使用索引由此产生标记 0,...n-1。有用如果串联串联没有有意义索引信息对象请注意联接仍然受到尊重其他索引
    join_axes 索引对象列表具体指标用于其他 n-1 而不是执行内部/外部设置逻辑
    keys︰ 序列默认构建分层索引使用通过作为外面级别如果多个级别获得通过包含元组
    levels 列表序列默认具体水平 (唯一值) 用于构建多重否则他们推断钥匙
    names 列表中默认由此产生分层索引名称
    verify_integrity 布尔值 默认 False检查是否串联包含重复项可以相对于实际数据串联非常昂贵
    副本 布尔值 默认 True如果为 False不要不必要地复制数据

    1.frames = [df1, df2, df3]
    
    2.result = pd.concat(frames)
     
    3.result = pd.concat(frames, keys=['x', 'y', 'z'])
    4.result.ix['y']
        A   B   C   D
    4  A4  B4  C4  D4
    5  A5  B5  C5  D5
    6  A6  B6  C6  D6
    7  A7  B7  C7  D7
    5.result = pd.concat([df1, df4], axis=1)
    6.result = pd.concat([df1, df4], axis=1, join='inner')
    7.result = pd.concat([df1, df4], axis=1, join_axes=[df1.index])
    8.result = pd.concat([df1, df4], ignore_index=True)
  • 相关阅读:
    正则表达式贪婪与非贪婪模式
    GPGPU OpenCL 获取设备信息
    GPGPU OpenCL编程步骤与简单实例
    去掉linux 系统vi中出现^M字符的方法
    OpenMP 线程互斥锁
    CUDA使用Event进行程序计时
    Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章
    Python-文件读写及修改
    有关Python的import...和from...import...的区别
    Python中调用其他程序的方式
  • 原文地址:https://www.cnblogs.com/avivi/p/10813247.html
Copyright © 2011-2022 走看看