一、concat 方法

作用:主要用于在 行或列方向 把多个 DataFrameSeries 简单地 拼接 在一起。类似于 堆叠(stack) 或者 追加(append)

典型场景:多个结构一致的表(比如每个月的销售数据...)合并成一个大表。

常用参数

axis:拼接方向。

axis=0(默认):按行拼接(上下叠加)。

axis=1:按列拼接(左右拼接)。

ignore_index:是否重新生成索引。

keys:生成多层索引。

join:决定按什么方式对齐列(innerouter,默认为 outer

 简单示例:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

result = pd.concat([df1, df2], axis=0, ignore_index=True)
result

借助jupyter notebook 测试代码结果如下:

二、 merge 方法

作用:类似于SQL中的join,用于根据某些列的值把两个DataFrame按键对齐合并。

可以通过设置how参数来执行内连接(默认是inner),左连接(how=left),右连接(how=right)、外连接(how=outer).

经典场景:

        需要根据一个或者多个关键列,将两个表按行对齐合并如(订单表和用户表)。

常用参数:

  on:指定用于连接的列名。

  left_onright_on:分别指定左右表用于连接的列。

  how:连接方式(innerouterleftright)。

  suffixes:处理列名冲突时添加的后缀。

简单示例:

import pandas as pd
df1 = pd.DataFrame(
    {
        'key':['A','B','C'],
        'value1':[1,2,3]
    }
)
df2 = pd.DataFrame(
    {
        'key': ['B','C','D'],
        'value2':[4,5,6]
    }
)
result = pd.merge(
    df1,df2,on='key',how='inner'
)
result

借助jupyter notebook测试代码结果如下:

注意:

  • concat :像“拼积木”,简单堆叠,不检查匹配逻辑,索引对不上就补 NaN

  • merge :像“数据库 JOIN”,必须有键,一定要搞清楚要怎么匹配,怎么保留行。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐