📜  Python | pandas 合并merge,联接join和级联concat(1)

📅  最后修改于: 2023-12-03 15:19:02.807000             🧑  作者: Mango

Python | pandas 合并merge,联接join和级联concat

简介

在数据分析和处理的过程中,我们通常需要将来自不同数据源的数据进行合并、联接和级联。pandas是Python中一个非常流行的数据分析和处理库,其提供了丰富的合并、联接和级联的方法,使得数据的处理更加高效、简单。本文将重点介绍pandas中的合并merge,联接join和级联concat方法。

合并merge

merge方法是pandas中最常用的方法之一,它能够按照某个或多个键连接两个数据集。下面是一个简单的例子:

import pandas as pd

# 定义两个数据集
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

# 根据key列进行合并
merged_df = pd.merge(df1, df2, on='key')

print(merged_df)

输出结果:

  key  value_x  value_y
0   B        2        5
1   D        4        6

可以看到,在上述例子中,df1和df2都有一个key列,merge方法按照此列进行连接,并将两个数据集中共有的key值进行合并。同时,merge方法通过自动识别两个数据集中共有的列并将其作为连接键,也可以通过on参数来指定需要进行连接的键。除此之外,还有许多其他的参数可以用于对merge方法进行调整。

联接join

join方法也是pandas中常用的方法之一,它能够按照某个或多个键将两个数据集连接起来。下面是一个简单的例子:

import pandas as pd

# 定义两个数据集
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]}).set_index('key')
df2 = pd.DataFrame({'value': [5, 6, 7, 8]}, index=['B', 'D', 'E', 'F'])

# 根据key列进行连接
joined_df = df1.join(df2, how='inner')

print(joined_df)

输出结果:

   value_x  value_y
B        2        5
D        4        6

可以看到,在上述例子中,df1和df2都有一个value列,join方法按照其索引进行连接,并将两个数据集中共有的索引值进行合并。同时,join方法通过how参数来指定连接方式,包括inner、outer、left和right等不同的连接方式。除此之外,还有许多其他的参数可以用于对join方法进行调整。

级联concat

concat方法是pandas中合并多个数据集的方法,它能够按照某个或多个轴连接多个数据集。下面是一个简单的例子:

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']})

df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                    'B': ['B4', 'B5', 'B6', 'B7'],
                    'C': ['C4', 'C5', 'C6', 'C7'],
                    'D': ['D4', 'D5', 'D6', 'D7']})

df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'],
                    'B': ['B8', 'B9', 'B10', 'B11'],
                    'C': ['C8', 'C9', 'C10', 'C11'],
                    'D': ['D8', 'D9', 'D10', 'D11']})

# 沿着行轴连接
concatenated_df = pd.concat([df1, df2, df3], axis=0)

print(concatenated_df)

输出结果:

     A    B    C    D
0   A0   B0   C0   D0
1   A1   B1   C1   D1
2   A2   B2   C2   D2
3   A3   B3   C3   D3
0   A4   B4   C4   D4
1   A5   B5   C5   D5
2   A6   B6   C6   D6
3   A7   B7   C7   D7
0   A8   B8   C8   D8
1   A9   B9   C9   D9
2  A10  B10  C10  D10
3  A11  B11  C11  D11

可以看到,concat方法能够按照指定的轴连接多个数据集,并且能够自动识别每个数据集中的索引和列,并将其合并到一个新的数据集中。除此之外,还有许多其他的参数可以用于对concat方法进行调整。

总结

本文介绍了pandas中常用的三种方法:merge,join和concat,同时也介绍了它们各自的作用、参数以及用法。在实际的数据处理过程中,经常需要对多个数据集进行合并、联接和级联,掌握这些方法可以使我们的数据处理更加高效。