📅  最后修改于: 2023-12-03 14:40:11.142000             🧑  作者: Mango
在处理大型数据集时,数据经常需要被拆分为多个数据框。而当您需要将它们组合在一起后,Pandas提供了两个有用的函数来解决这个问题:Concat 和 Append。
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']})
frames = [df1, df2]
result = pd.concat(frames)
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
0 A4 B4 C4 D4
1 A5 B5 C5 D5
2 A6 B6 C6 D6
3 A7 B7 C7 D7
在拼接数据集时,Concat函数需要您提供多个数据集的列表,然后返回一个包含两个数据集的对象。在此示例中,我们使用Python的列表将两个Pandas数据集传递给Concat函数。
Concat还有几个可选择的参数。例如,您可以指定在沿着哪个方向拼接数据时如何处理索引:
result = pd.concat(frames, axis=1, sort=False)
print(result)
输出结果:
A B C D A B C D
0 A0 B0 C0 D0 A4 B4 C4 D4
1 A1 B1 C1 D1 A5 B5 C5 D5
2 A2 B2 C2 D2 A6 B6 C6 D6
3 A3 B3 C3 D3 A7 B7 C7 D7
在这个例子中,我们使用axis参数指定了沿着哪个方向拼接数据。我们还设置sort参数为False,因为我们不希望根据索引对输出进行排序。
您还可以指定要拼接的数据集的交叉点。例如,让我们尝试将此数据沿纵向拼接:
result = pd.concat(frames, keys=['x', 'y'])
print(result)
输出结果:
A B C D
x 0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
y 0 A4 B4 C4 D4
1 A5 B5 C5 D5
2 A6 B6 C6 D6
3 A7 B7 C7 D7
在这个例子中,我们使用了keys参数,它为拼接的数据集添加了前缀,以便您可以从结果中确定每个数据集所属的原始数据。
Append是另一个可以将两个数据框组合在一起的函数,但是与Concat函数不同,它可以将一个数据框附加到另一个数据框的末尾。
result = df1.append(df2)
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
0 A4 B4 C4 D4
1 A5 B5 C5 D5
2 A6 B6 C6 D6
3 A7 B7 C7 D7
在本示例中,我们对df1数据框使用append方法,并将df2作为参数传递。Pandas使用一个新的索引来命名将两个数据框组合在一起的新数据框。但是,您可以使用ignore_index=True
来忽略原始值并创建新的索引,如下所示:
result = df1.append(df2, 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
以上是关于如何使用Concat和Append函数将两个数据框组合在一起的基础知识。Concat函数和Append函数都是可以灵活使用的,具体取决于您正在使用的数据集。