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)
  • 相关阅读:
    java基础02标识符
    java基础08自增、自减运算符 初识Math
    java基础04 数据类型扩展及面试题讲解
    java基础03数据类型
    大家好,近期学习设计模式,我会把自己的例子上传,以供大家参考
    关于寂寞
    从以文件流的形式下载文件
    大家好,我的程序博客开始了
    如何学好C语言
    大学生如何将自己从迷茫中解困
  • 原文地址:https://www.cnblogs.com/avivi/p/10813247.html
Copyright © 2011-2022 走看看