Pandas合并数据:concat方法详细介绍

文摘   2024-11-21 00:02   湖北  

Pandas 是一个强大的数据处理库,它提供了多种方法来合并数据集。主要包括 merge、join和concat,本文详细介绍concat的用法。

concat方法用于沿指定轴(行或列)拼接多个 DataFrame,默认是按行来合并。

按行合并

import pandas as pd
df1 = pd.DataFrame(
    {
        "A": ["A0""A1""A2""A3"],
        "B": ["B0""B1""B2""B3"],
        "C": ["C0""C1""C2""C3"],
        "D": ["D0""D1""D2""D3"],
    },
    index=[0123],
)


df2 = pd.DataFrame(
    {
        "A": ["A4""A5""A6""A7"],
        "B": ["B4""B5""B6""B7"],
        "C": ["C4""C5""C6""C7"],
        "D": ["D4""D5""D6""D7"],
    },
    index=[4567],
)


df3 = pd.DataFrame(
    {
        "A": ["A8""A9""A10""A11"],
        "B": ["B8""B9""B10""B11"],
        "C": ["C8""C9""C10""C11"],
        "D": ["D8""D9""D10""D11"],
    },
    index=[891011],
)


frames = [df1, df2, df3]

result = pd.concat(frames)

result


按列合并

df1 = pd.DataFrame(
    {
        "A": ["A0""A1""A2""A3"],
        "B": ["B0""B1""B2""B3"],
        "C": ["C0""C1""C2""C3"],
        "D": ["D0""D1""D2""D3"],
    },
    index=[0123],
)


df4 = pd.DataFrame(
    {
        "B": ["B2""B3""B6""B7"],
        "D": ["D2""D3""D6""D7"],
        "F": ["F2""F3""F6""F7"],
    },
    index=[2367],
)

result = pd.concat([df1, df4], axis=1)
result


仅保留相同索引的合并

contact函数中有join参数,可设置该参数来调整合并的方法,该方法主要用于基于索引进行合并。

result = pd.concat([df1, df4], axis=1, join="inner")##仅保留两个数据相同索引行
result


按指定数据的索引合并数据

result = pd.concat([df1, df4], axis=1).reindex(df1.index)###按照df1的索引来合并数据。
result


合并为多极索引数据

Pandas 的 MultiIndex(多级索引)是一种强大的数据结构,允许我们在行和列上使用多个索引级别。这在处理复杂的数据集时非常有用。

df1 = pd.DataFrame(
    {
        "A": ["A0""A1""A2""A3"],
        "B": ["B0""B1""B2""B3"],
        "C": ["C0""C1""C2""C3"],
        "D": ["D0""D1""D2""D3"],
    },
    index=[0123],
)


df2 = pd.DataFrame(
    {
        "A": ["A4""A5""A6""A7"],
        "B": ["B4""B5""B6""B7"],
        "C": ["C4""C5""C6""C7"],
        "D": ["D4""D5""D6""D7"],
    },
    index=[4567],
)


df3 = pd.DataFrame(
    {
        "A": ["A8""A9""A10""A11"],
        "B": ["B8""B9""B10""B11"],
        "C": ["C8""C9""C10""C11"],
        "D": ["D8""D9""D10""D11"],
    },
    index=[891011],
)

frames = [df1, df2, df3]

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

合并后的多极索引数据,也可以调出并展示对应的数据。后续会专门出一篇文章介绍MultiIndex(多级索引)的使用。


通过上述示例,我们就能详细了解Pandas的concat数据合并方法,可以根据具体需求选择合适的方法进行数据合并。希望本文对大家有所帮助!

Python学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章