Python将多个数据框合并

在数据分析和处理的过程中,我们经常需要将多个数据框进行合并,以便进行更细致的分析和统计。Python提供了多种方法来合并数据框,包括使用pandas库中的concatmergejoin等函数。本文将介绍这些方法的使用,并给出相应的代码示例。

1. 数据框的合并方法

1.1 concat函数

concat函数可以将多个数据框按照指定的轴进行合并,默认情况下是按照行进行合并。下面是一个使用concat函数合并两个数据框的示例:

import pandas as pd

# 创建两个数据框
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9],
                    'B': [10, 11, 12]})

# 按行合并数据框
result = pd.concat([df1, df2])
print(result)

输出结果为:

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12

可以看到,合并后的数据框中的行索引是连续的。如果希望在合并后的数据框中重新设置行索引,可以使用ignore_index参数:

result = pd.concat([df1, df2], ignore_index=True)
print(result)

输出结果为:

   A   B
0  1   4
1  2   5
2  3   6
3  7  10
4  8  11
5  9  12

除了按照行合并数据框,concat函数还可以按照列进行合并。只需将axis参数设置为1即可:

df3 = pd.DataFrame({'C': [13, 14, 15],
                    'D': [16, 17, 18]})

# 按列合并数据框
result = pd.concat([df1, df3], axis=1)
print(result)

输出结果为:

   A  B   C   D
0  1  4  13  16
1  2  5  14  17
2  3  6  15  18

1.2 merge函数

merge函数用于根据指定的列将两个数据框进行合并。下面是一个使用merge函数合并两个数据框的示例:

# 创建两个数据框
df4 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6],
                    'Key': ['K1', 'K2', 'K3']})
df5 = pd.DataFrame({'C': [7, 8, 9],
                    'D': [10, 11, 12],
                    'Key': ['K2', 'K3', 'K4']})

# 根据Key列合并数据框
result = pd.merge(df4, df5, on='Key')
print(result)

输出结果为:

   A  B Key  C   D
0  2  5  K2  7  10
1  3  6  K3  8  11

可以看到,合并后的数据框只保留了两个数据框中Key列相同的行。

1.3 join函数

join函数可以通过指定的列将两个数据框进行合并,并且会自动根据列名进行匹配。下面是一个使用join函数合并两个数据框的示例:

# 创建两个数据框
df6 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6],
                    'Key': ['K1', 'K2', 'K3']})
df7 = pd.DataFrame({'C': [7, 8, 9],
                    'D': [10, 11, 12],
                    'Key': ['K2', 'K3', 'K4']})

# 根据Key列合并数据框
result = df6