📅  最后修改于: 2023-12-03 14:45:02.267000             🧑  作者: Mango
在数据科学和机器学习中,很常见需要把两个或多个数据集连接在一起。在 Pandas 中,我们可以用 pd.concat()
函数实现这个操作。本文将讲解 Pandas 中 pd.concat()
函数的使用方法,以及如何使用 reset_index()
函数来重置新数据集的索引。
pd.concat()
函数可以把 Pandas Series 或 Dataframes 沿某个轴连接起来。可以设置连接轴(默认 axis=0
,即按照行进行连接),以及选择是否在连接轴上去除重复的索引。以下是示例的两个 Dataframes:
import pandas as pd
# 创建两个 dataframes
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']})
pd.concat()
函数的常用参数有:
objs
:需要连接的 pandas 对象列表。axis
:指定连接的轴方向。默认为 axis=0
。join
:连接方式,支持 left
、right
、inner
或者 outer
。默认为 join='outer'
。ignore_index
:是否忽略原有的索引,生成新的索引。默认为 ignore_index=False
。# 以行方向连接两个 dataframe
df = pd.concat([df1, df2], axis=0, ignore_index=True)
print(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
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7
上面代码展示了如何将两个 dataframe 沿着行方向进行连接。
在上面的例子中,我们使用了 ignore_index=True
来重置索引。这是因为在两个数据帧连接在一起后,它们可能会出现重复的索引。reset_index()
函数是另一个用来重置索引的好方法。它可以帮助我们生成新 indexes,但是也会保留原来的 indexes 作为另一个列。
下面,将通过示例来演示如何使用 reset_index()
函数。
df = pd.DataFrame({'month': ['Jan', 'Feb', 'Mar', 'Apr'],
'A': [30, 20, 25, 40],
'B': [25, 30, 45, 10],
'C': [10, 20, 30, 40]})
new_df = df.reset_index()
print(new_df)
此时将生成一个新的 DataFrame,其中重置的索引将成为新的一列:
index month A B C
0 0 Jan 30 25 10
1 1 Feb 20 30 20
2 2 Mar 25 45 30
3 3 Apr 40 10 40
Pandas 中的 pd.concat()
和 reset_index()
函数是数据科学和机器学习中常用的工具之一。Pandas 可以方便地将您的数据集连接在一起,并生成一个新的 DataFrame,此外还允许使用 reset_index()
函数将原有的索引重新设置为正常的连续索引。