Pandas DataFrame Droplevel 方法

Beginner

介绍

在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 droplevel() 方法。droplevel() 方法用于从 DataFrame 的索引或列中移除一个或多个层级。我们将通过示例来理解如何使用该方法。

虚拟机提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。实验结束后提供反馈,我们将及时为你解决问题。

导入必要的库

首先,我们需要导入 pandas 库,因为它提供了处理表格数据的功能。

import pandas as pd

创建一个 DataFrame

接下来,我们创建一个 DataFrame 来进行操作。我们将使用 pd.DataFrame() 函数创建一个包含一些示例数据的 DataFrame。同时,我们还会使用 set_index() 方法设置一个多级索引。

df = pd.DataFrame([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]).set_index([0, 1]).rename_axis(['a', 'b'])
df.columns = pd.MultiIndex.from_tuples([('c', 'e'), ('d', 'f')], names=['level_1', 'level_2'])
print(df)

从索引中移除一个层级

我们可以使用 droplevel() 方法从 DataFrame 的索引中移除一个层级。为此,我们需要将要移除的层级作为参数传递给 droplevel() 方法。该方法将返回一个新的 DataFrame,其中指定的层级已被移除。

dropped_level_df = df.droplevel('a')
print(dropped_level_df)

从列中移除一个层级

类似地,我们可以使用 droplevel() 方法从 DataFrame 的列中移除一个层级。我们需要指定要移除的层级,并将 axis 参数设置为 1,以表示我们正在从列中移除一个层级。

dropped_level_df = df.droplevel('level_2', axis=1)
print(dropped_level_df)

从索引中移除多个层级

在某些情况下,我们可能需要从索引中移除多个层级。为此,我们可以将一个层级列表传递给 droplevel() 方法。该方法将从索引中移除所有指定的层级,并返回一个新的 DataFrame。

dropped_levels_df = df.droplevel(['a', 'b'])
print(dropped_levels_df)

总结

在本实验中,我们学习了如何在 Python 的 Pandas 库中使用 droplevel() 方法。我们了解了如何使用该方法从 DataFrame 的索引和列中移除一个层级。此外,我们还学习了如何从索引中移除多个层级。当我们需要通过移除索引或列中不必要的层级来操作 DataFrame 的结构时,此方法非常有用。