Python Pandas是一个非常强大的数据分析库,其中有一个非常重要的功能就是合并和拼接。它可以帮助我们快速地将不同的数据集合并在一起,并且可以根据需要调整数据的结构。
Pandas提供了一系列的函数和方法来合并和拼接数据,其中最常用的有concat,merge,join,append等。
1. concat函数
concat函数可以用来拼接不同的DataFrame,Series或者Panel对象。它可以沿着不同的轴(axis)将对象拼接在一起,例如沿着行(axis=0)或者列(axis=1)。
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']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'],
'B': ['B8', 'B9', 'B10', 'B11'],
'C': ['C8', 'C9', 'C10', 'C11'],
'D': ['D8', 'D9', 'D10', 'D11']},
index=[8, 9, 10, 11])
# 沿着行拼接
result = pd.concat([df1, df2, df3], axis=0)
# 沿着列拼接
result = pd.concat([df1, df2, df3], axis=1)
2. merge函数
merge函数可以用来将两个DataFrame对象中的数据进行合并。它可以根据指定的字段来合并,也可以根据两个DataFrame的索引来合并。
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'key': ['K0', 'K1', 'K2', 'K3']})
df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3'],
'key': ['K0', 'K1', 'K2', 'K3']})
# 根据key字段进行合并
result = pd.merge(df1, df2, on='key')
# 根据索引进行合并
result = pd.merge(df1, df2, left_index=True, right_index=True)
3. join函数
join函数可以用来将两个DataFrame对象中的数据进行合并,它类似于merge函数,但是它只能按照索引进行合并,而不能按照指定字段进行合并。
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']},
index=['K0', 'K1', 'K2', 'K3'])
df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=['K0', 'K1', 'K2', 'K3'])
# 根据索引进行合并
result = df1.join(df2)
4. append函数
append函数可以用来将一个DataFrame对象的行拼接到另一个DataFrame对象的后面,它只能拼接DataFrame对象,不能拼接Series或者Panel对象。
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
# 将df2的行拼接到df1的后面
result = df1.append(df2)
以上就是Python Pandas中合并与拼接的基本用法,可以帮助我们快速地处理大量的数据。