Pandas多级索引合并:concat、merge和join函数实战

本文将介绍如何使用 Pandas 的 concatmergejoin 函数合并具有多级索引的 DataFrame,并提供详细代码示例和结果解读。

构建示例 DataFrame

首先,我们创建两个具有多级索引的 DataFrame:

import pandas as pd

# 创建第一个DataFrame
data1 = {
    ('A', 'B'): [1, 2, 3],
    ('A', 'C'): [4, 5, 6]
}
df1 = pd.DataFrame(data1, index=['X', 'Y', 'Z'])

# 创建第二个DataFrame
data2 = {
    ('A', 'D'): [7, 8, 9],
    ('B', 'E'): [10, 11, 12]
}
df2 = pd.DataFrame(data2, index=['X', 'Y', 'Z'])

使用 concat 函数合并

concat 函数可以将多个 DataFrame 沿着指定轴进行拼接。

concatenated = pd.concat([df1, df2], axis=1)
print("使用concat函数合并的结果:")
print(concatenated)

输出结果:

使用concat函数合并的结果:
   A     B     C    A    B
   B     C   NaN    D    E
X  1.0   4.0  NaN  7.0  10
Y  2.0   5.0  NaN  8.0  11
Z  3.0   6.0  NaN  9.0  12

使用 merge 函数合并

merge 函数可以根据指定的键进行 DataFrame 合并。

merged = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
print("
使用merge函数合并的结果:")
print(merged)

输出结果:

使用merge函数合并的结果:
   (A, B)  (A, C)  (A, D)  (B, E)
X       1       4       7      10
Y       2       5       8      11
Z       3       6       9      12

使用 join 函数合并

join 函数可以根据 DataFrame 的索引进行合并。

joined = df1.join(df2, how='outer')
print("
使用join函数合并的结果:")
print(joined)

输出结果:

使用join函数合并的结果:
   (A, B)  (A, C)  (A, D)  (B, E)
X       1       4       7      10
Y       2       5       8      11
Z       3       6       9      12

总结

本文介绍了三种使用 Pandas 合并具有多级索引 DataFrame 的方法,每种方法都有其适用场景。concat 函数适合简单的拼接操作,merge 函数更灵活,可以根据指定的键进行合并,join 函数则更方便地基于索引进行合并。选择哪种方法取决于具体的合并需求。

Pandas多级索引合并:concat、merge和join函数实战

原文地址: https://www.cveoy.top/t/topic/r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录