在 Pandas 中删除重复的列
本教程探讨了从 Pandas DataFrame 中删除重复列的概念。
在 Pandas 中删除重复的列
在本教程中,让我们了解如何以及为什么在 Pandas DataFrame 中删除相同或相似的列。大多数企业和组织都需要消除这些重复的列,因为它们可能对从中收集见解并不重要。
此外,当我们需要向数据库添加一些其他数据时,它们会使数据库变得混乱并在存储空间中产生问题。最后,重复的列也可能会影响某些统计或机器学习模型,因为数据可能会出现偏差,并会导致模型准确性非常低。
让我们看看如何在行动中完成此操作。
但是,在开始之前,我们会创建一个虚拟 DataFrame 来使用。在这里,我们创建了两个 DataFrame,即 dat1
和 dat2
,以及一些条目。
import pandas as pd
dat1 = pd.DataFrame({"dat1": [9, 5]})
上面的代码创建了一个 DataFrame 和一些条目,即 9
和 5
。要查看数据中的条目,我们使用以下代码。
print(dat1)
上面的代码给出了以下输出。
dat1
0 9
1 5
如图所示,我们有 2 列和 2 行,其中一列表示索引,第二列表示 DataFrame 中的值。现在,让我们使用以下代码创建另一个名为 dat2
的 DataFrame。
dat2 = pd.DataFrame({"dat2": [9, 5]})
正如我们对 dat1
所做的那样,我们可以使用以下代码可视化这个 dat2
DataFrame。
print(dat2)
该代码给出了以下 DataFrame。
dat2
0 9
1 5
正如我们对 dat1
所做的那样,我们有 2 行和 2 列,其中一个表示索引,第二个表示 DataFrame 中的值。
现在,让我们将 dat2
DataFrame 的列合并到 dat1
DataFrame。我们可以使用下面的代码来做到这一点。
val = pd.concat([dat1, dat2], axis=1)
如图所示,我们在 Pandas 中使用了 concat
函数。此函数使用作为数组传递的单个参数将多个 DataFrame 合并或连接成一个,并合并所有 DataFrame。
我们还需要指定添加 DataFrame 的轴,以根据列或行来更改 DataFrame。
从代码中可以明显看出,我们使用值为 1
的 axis
参数。它可以帮助将列添加到第一个参数中分配的数组的 DataFrame 中。
代码的输出如下。
dat1 dat2
0 9 9
1 5 5
如图所示,DataFrame dat1
已被更改,因此在第一轴上添加了一个附加列。
同样,此输出使用 print(val)
代码进行可视化。我们有一个 DataFrame,其中包含名为 dat1
和 dat2
的两列具有相同的值。
特别是,我们使用 Pandas 中的 join
函数在 dat1
DataFrame 中添加了一个新行。
使用 drop_duplicates()
函数删除 Pandas 中的重复列
现在让我们从 DataFrame 中消除重复的列。我们可以使用以下代码执行此操作。
print(val.reset_index().T.drop_duplicates().T)
这有助于我们轻松地重置索引并从 DataFrame 中删除重复的列。代码的输出如下。
index dat1
0 0 9
1 1 5
如图所示,我们已经成功地从我们的 DataFrame 中消除了名为 dat2
的重复列。同样重要的是要注意,我们已经为 val
DataFrame 重置了索引,这可能有助于分析师重新配置他们的数据点并收集更好的见解。
因此,我们使用 concat
函数和 drop_duplicates()
函数消除了 DataFrame 中可能存在的任何重复列。
为了更好地理解这个概念,你可以了解以下主题。
- Pandas 中的
Concat
函数。 - Pandas 中的
Drop Duplicates
函数。