📜  Concat 和 Append DFs Python (1)

📅  最后修改于: 2023-12-03 14:40:11.142000             🧑  作者: Mango

Concat 和 Append DFs Python

在处理大型数据集时,数据经常需要被拆分为多个数据框。而当您需要将它们组合在一起后,Pandas提供了两个有用的函数来解决这个问题:Concat 和 Append。

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

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

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函数都是可以灵活使用的,具体取决于您正在使用的数据集。