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

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')

python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca_第1张图片
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)
python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca_第2张图片
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')
python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca_第3张图片
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)
python 把几个DataFrame合并成一个DataFrame——merge,append,join,conca_第4张图片


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)

连接: http://pandas.pydata.org/pandas-docs/stable/merging.html

你可能感兴趣的:(python)