可以通过使用merge()和reduce()函数来按照行名进行多个数据框的合并。
示范代码如下:
# 导入必要的包
import pandas as pd
from functools import reduce
# 创建示例数据框
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=['KV1', 'KV2', 'KV3', 'KV4'])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=['KV5', 'KV6', 'KV7', 'KV8'])
df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'],
'B': ['B8', 'B9', 'B10', 'B11'],
'C': ['C8', 'C9', 'C10', 'C11'],
'D': ['D8', 'D9', 'D10', 'D11']},
index=['KV9', 'KV10', 'KV11', 'KV12'])
# 将数据框放入列表中
dfs = [df1, df2, df3]
# 使用reduce函数,按照行名合并多个数据框
df_merged = reduce(lambda left, right: pd.merge(left, right, left_index=True, right_index=True), dfs)
以上代码会将df1、df2和df3按照行名进行合并,并返回一个合并后的数据框,结果如下所示:
A B C D
KV1 A0 B0 C0 D0
KV2 A1 B1 C1 D1
KV3 A2 B2 C2 D2
KV4 A3 B3 C3 D3
KV5 A4 B4 C4 D4
KV6 A5 B5 C5 D5
KV7 A6