Pandas多级索引合并:concat、merge和join函数实战
Pandas多级索引合并:concat、merge和join函数实战
本文将介绍如何使用 Pandas 的 concat、merge 和 join 函数合并具有多级索引的 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 函数则更方便地基于索引进行合并。选择哪种方法取决于具体的合并需求。
原文地址: https://www.cveoy.top/t/topic/r 著作权归作者所有。请勿转载和采集!