7000字整理: 全网最详细Pandas合并数据集操作总结

本文详尽总结了Pandas库中数据集合并的各种方法,包括简单的介绍、多重索引处理、列名重命名、不同合并方式及其应用场景。通过实例解析了merge、concat、append等方法的参数和使用技巧,帮助读者深入理解数据合并操作。
摘要由CSDN通过智能技术生成

关于如果用pandas库来实现数据集之间合并的文章其实说少也不算少,不过小编总是感觉它们写的算不上完善,所以今天打算来整理与总结一下,本文大概的结构是

  • concat()方法的简单介绍

  • append()方法的简单介绍

  • merge()方法的简单介绍

  • join()方法的简单介绍

  • 多重行索引的合并介绍

  • 表格合并之后的列名重命名

  • combine()方法的简单介绍

  • combine_first()方法的简单介绍

Concat()方法的简单介绍

在我们开始concat()方法的正是介绍之前,我们先来看一下简单的例子

df1 = pd.DataFrame(
    {
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
        "C": ["C0", "C1", "C2", "C3"],
        "D": ["D0", "D1", "D2", "D3"],
    },
    index=[0, 1, 2, 3],
)
df2 = pd.DataFrame(
    {
        "A": ["A4", "A5", "A6", "A7"],
        "B": ["B4", "B5", "B6", "B7"],
        "C": ["C4", "C5", "C6", "C7"],
        "D": ["D4", "D5", "D6", "D7"],
    },
    index=[4, 5, 6, 7],
)
df3 = pd.DataFrame(
    {
        "A": ["A8", "A9", "A10", "A11"],
        "B": ["B8", "B9", "B10", "B11"],
        "C": ["C8", "C9", "C10", "C11"],
        "D": ["D8", "D9", "D10", "D11"],
    },
    index=[8, 9, 10, 11],
)

我们来看一下使用concat()方法之后的效果

frames = [df1, df2, df3]
result = pd.concat(frames)
result

output

A    B    C    D
0    A0   B0   C0   D0
1    A1   B1   C1   D1
2    A2   B2   C2   D2
3    A3   B3   C3   D3
4    A4   B4   C4   D4
5    A5   B5   C5   D5
6    A6   B6   C6   D6
7    A7   B7   C7   D7
8    A8   B8   C8   D8
9    A9   B9   C9   D9
10  A10  B10  C10  D10
11  A11  B11  C11  D11

大致合并的方向就是按照轴垂直的方向来进行合并,如下图

42dfdc54866f19553fa834abc0aec0d2.png

下面小编来详细介绍一下concat()方法中的各个参数作用

pd.concat(
    objs,
    axis=0,
    join="outer",
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    copy=True,
)
  • objs:需要用来进行合并的数据集,可以是Series类型或者是DataFrame类型的数据

  • axis:可以理解为是合并的方向,默认是0

  • join:可以理解为是合并的方式,有并集或是交集两种方式,默认的是并集

  • ignore_index:忽略索引,默认是False

  • keys:用于做行方向的多重索引

大家可能会有些迷惑,什么是多重的索引呢?看下面的例子

result = pd.concat(frames, keys=["x", "y", "z"])
result

output

2a26b3fdfbae3d90f10c035800995952.png

如此一来,我们可以通过“x”、“y”以及“z”这些元素来获取每一部分的数据,例如

result.log["x"]

output

A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3

除此之外,keys参数还能够被用在列索引上

s3 = pd.Series([0, 1, 2, 3], name="foo")
s4 = pd.Series([0, 1, 2,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值