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=[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],
)
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=[0, 1, 2, 3],
)
df4 = pd.DataFrame(
{
"B": ["B2", "B3", "B6", "B7"],
"D": ["D2", "D3", "D6", "D7"],
"F": ["F2", "F3", "F6", "F7"],
},
index=[2, 3, 6, 7],
)
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=[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],
)
frames = [df1, df2, df3]
result = pd.concat(frames, keys=["x", "y", "z"])
result
合并后的多极索引数据,也可以调出并展示对应的数据。后续会专门出一篇文章介绍MultiIndex(多级索引)的使用。
通过上述示例,我们就能详细了解Pandas的concat数据合并方法,可以根据具体需求选择合适的方法进行数据合并。希望本文对大家有所帮助!