Python必备技巧之Pandas数据合并函数

  • Post category:Python

Python必备技巧之Pandas数据合并函数可以简单理解为将多个数据集合并成一个数据集的过程。Pandas中提供了多种数据合并函数,如merge(),join(),concat()等。下面我将结合示例详细介绍这几种函数的用法。

merge函数

merge函数是Pandas中最常用的数据合并函数之一。它可以实现类似SQL中join操作的功能。merge可以根据某些列的值将两个数据集合并,有4种合并方式:left、right、inner和outer。下面介绍常用的两种方式:

Inner Join

内联结用于选择公共的行。merge()函数的默认操作是内联结。例如合并下面两个数据集:

import pandas as pd

left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

result = pd.merge(left, right, on='key')

print(result)

输出结果如下:

  key  value_x  value_y
0   B        2        5
1   D        4        6

Left Join

左联结包括左边所有的行,右边与左边相应的列进行匹配,如果右边没有与左边的列匹配,则在结果集中右边部分为空值。例如合并下面两个数据集:

left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

result = pd.merge(left, right, on='key', how='left')

print(result)

输出结果如下:

  key  value_x  value_y
0   A        1      NaN
1   B        2      5.0
2   C        3      NaN
3   D        4      6.0

join函数

join函数也可以用于数据集的合并。语法为:DataFrame.join(self, other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)。其中参数含义与merge函数类似。join函数更常用于在同一个DataFrame中合并两个不同的列。

例如下面这个例子:

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value2': [5, 6, 7, 8]})

result = df1.set_index('key').join(df2.set_index('key'), how='left')

print(result)

输出结果如下:

     value1  value2
key               
A         1     NaN
B         2     5.0
C         3     NaN
D         4     6.0 

concat函数

concat函数可以将多个数据集按照行或者列方向合并。通过axis参数来控制合并方向。例如下面这个例子:

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

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

print(result)

输出结果如下:

    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3
4  A4  B4  C4  D4
5  A5  B5  C5  D5
6  A6  B6  C6  D6
7  A7  B7  C7  D7

以上就是Python必备技巧之Pandas数据合并函数的完整攻略,希望对你有帮助。