在 pandas 中从多索引恢复为单索引-ag捕鱼王app官网

在 pandas 中从多索引恢复为单索引

作者:迹忆客 最近更新:2024/04/24 浏览次数:

本教程教授如何使用 python 在 pandas 中从 multiindex 恢复为单个索引 dataframe。

multiindex dataframe,也称为多级和分层 dataframe,允许用户拥有多个列,这些列可以标识一行,同时每个列索引通过表中不同的父子关系相互关联。

我们可以使用两种方法将多级索引转换为单级索引。我们将学习在 pandas 中操作 dataframe 的灵活性和更高的效率。


将列重命名为标准列以将 multiindex 转换为 pandas 中的单个索引

我们必须首先在此方法中创建一个由 multiindex 列组成的 dataframe。之后,我们可以更改列的名称,即标准列,这样我们就可以轻松地摆脱 multiindex 并且没有任何错误。

下面是从一开始就遵循此方法的整个过程的代码。

import pandas as pd
import numpy as np
# build an example dataframe
midx = pd.multiindex(
    levels=[["zero", "one"], ["x", "y"]],
    codes=[
        [
            1,
            1,
            0,
        ],
        [
            1,
            0,
            1,
        ],
    ],
)
df = pd.dataframe(np.random.randn(2, 3), columns=midx)
print(df)

该代码将为我们提供以下输出。

        one                zero
          y         x         y
0  0.785806 -0.679039  0.513451
1 -0.337862 -0.350690 -1.423253

因此,我们可以观察到,已经创建了一个具有多级索引列的 dataframe。要将此列恢复为单级索​​引,我们需要在下面的方法中重命名它们。

df.columns = ["a", "b", "c"]
print(df)

上述代码的输出如下。

          a         b         c
0  0.785806 -0.679039  0.513451
1 -0.337862 -0.350690 -1.423253

分层索引已被删除,仅显示新名称,替换列的旧名称。


在 pandas 中重置列的级别以将 multiindex 转换为单个索引

在这种方法中,我们只需重置 multiindex 列的级别以将它们转换为单级列。

reset_index() 方法允许用户重置 dataframe 的索引并再次考虑默认索引。可以使用此方法同时删除一个或多个级别。

我们将通过在之前使用的代码片段中添加一行来做到这一点。让我们考虑一个不同的例子,以更清晰、更灵活地学习该技术。

index = pd.multiindex.from_tuples(
    [("bird", "falcon"), ("bird", "parrot"), ("mammal", "lion"), ("mammal", "monkey")],
    names=["class", "name"],
)
columns = pd.multiindex.from_tuples([("speed", "max"), ("species", "type")])
df = pd.dataframe(
    [(389.0, "fly"), (24.0, "fly"), (80.5, "run"), (np.nan, "jump")],
    index=index,
    columns=columns,
)
print(df)

上面的代码将为我们提供以下输出。

				speed	species
				max		type
class	name
bird	falcon	389.0	fly
		parrot	24.0	fly
mammal	lion	80.5	run
		monkey	nan	    jump

我们将使用 reset_index() 方法获得以下输出。

print(df.reset_index(level="class"))
		 class  speed species
                  max    type
name
falcon    bird  389.0     fly
parrot    bird   24.0     fly
lion    mammal   80.5     run
monkey  mammal    nan    jump

reset_index() 方法将重置列的索引,通过这些索引,层次级别被稀释并转换为单级列 dataframe。上述代码的输出如下所示。

因此,在本教程中,我们学习了如何将 multiindex 列转换回单级列,而不会出现错误并且很容易而不会混淆。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图