数据处理2024 年 8 月 29 日 | 4 分钟阅读 数据分析和建模的大部分时间都花在数据准备和处理上,即加载、清理和重新排列数据等。此外,由于 Python 库,Pandas 为我们提供了高性能、灵活和高级的环境来处理数据。Pandas 提供了各种功能来有效地处理数据。 分层索引 为了增强数据处理的功能,我们必须使用一些索引,这些索引有助于根据标签对数据进行排序。因此,分层索引开始发挥作用,并被定义为 pandas 的一个基本特性,它帮助我们使用多个索引级别。 创建多个索引 在分层索引中,我们必须为数据创建多个索引。此示例使用多个索引创建一个系列。 示例 输出 aobj1 11 obj2 14 obj3 17 obj4 24 bobj1 19 obj2 32 obj3 34 obj4 27 dtype: int64 我们在这里使用了两个索引级别,即 (a, b) 和 (obj1,..., obj4),可以使用 'index' 命令查看索引。 输出 MultiIndex(levels=[['x', 'y'], ['obj1', 'obj2', 'obj3', 'obj4']], labels=[[0, 0, 0, 0, 1, 1, 1, 1], [0, 1, 2, 3, 0, 1, 2, 3]]) 部分索引部分索引可以定义为从分层索引中选择特定索引的一种方式。 以下代码从数据中提取 'b', 输出 obj1 19 obj2 32 obj3 34 obj4 27 dtype: int64 此外,还可以根据内部级别(即“obj”)提取数据。以下结果定义了 Series 中“obj2”的两个可用值。 输出 x 14 y 32 dtype: int64 取消堆叠数据取消堆叠是指将行标题更改为列标题。行索引将更改为列索引,因此 Series 将成为 DataFrame。以下是取消堆叠数据的示例。 示例 输出 ab obj1 11 19 obj2 14 32 obj3 17 34 obj4 24 27 # unstack based on second level i.e. 'obj' info.unstack(1) 输出 obj1 obj2 obj3 obj4 a 11 14 17 24 b 19 32 34 27 'stack()' 操作用于将列索引转换为行索引。在上面的代码中,我们可以使用 'stack' 操作将 'obj' 作为列索引转换为行索引。 输出 aobj1 11 obj2 14 obj3 17 obj4 24 bobj1 19 obj2 32 obj3 34 obj4 27 dtype: int64 列索引请记住,由于列索引需要二维数据,因此列索引仅适用于 DataFrame(不适用于 Series)。让我们创建一个新的 DataFrame 来演示具有多个索引的列, 输出 num1 num2 num3 x y x a one0 1 2 two3 4 5 b three 6 7 8 four 9 10 11 输出 MultiIndex(levels=[['x', 'y'], ['four', 'one', 'three', 'two']], labels=[[0, 0, 1, 1], [1, 3, 2, 0]]) 输出 MultiIndex(levels=[['num1', 'num2', 'num3'], ['green', 'red']], labels=[[0, 1, 2], [1, 0, 1]]) 交换和排序级别我们可以使用 'swaplevel' 命令轻松交换索引级别,该命令将两个级别编号作为输入。 我们可以使用 'sort_index' 命令对标签进行排序。数据将按 'key2' 名称排序,即按字母顺序排列的 key2。 下一主题DataFrame.corr() |
我们请求您订阅我们的新闻通讯以获取最新更新。