Python Pandas – 返回多重索引中所要求层级的标签值向量

Python Pandas – 返回多重索引中所要求层级的标签值向量

在 Pandas 中,多重索引是一种非常常见的数据结构。在处理多重索引时,有时我们需要快速获取某一层级的所有标签值向量。这篇文章将介绍如何使用 Pandas 来实现这个功能。

多重索引

在 Pandas 中,如果一个数据框中的某些列存在相同的标签值,那么我们就可以使用多重索引来对这些列进行标记。例如,在下面的数据框中,我们使用多重索引对“城市”和“人口”这两列进行了标记:

import pandas as pd

data = {
    '城市': ['北京', '北京', '上海', '上海', '广州', '广州'],
    '年份': ['2017', '2018', '2017', '2018', '2017', '2018'],
    '人口': [2154, 2171, 2424, 2448, 1420, 1446],
    'GDP': [28014, 30320, 30632, 35504, 19611, 21418]
}

df = pd.DataFrame(data)

df = df.set_index(['城市', '年份'])

运行上面的代码,我们就可以得到以下数据框:

           人口    GDP
城市 年份            
北京 2017  2154  28014
    2018  2171  30320
上海 2017  2424  30632
    2018  2448  35504
广州 2017  1420  19611
    2018  1446  21418

可以看到,我们使用 set_index 函数将“城市”和“年份”这些列设置为了多重索引。

获取标签值向量

在上面的数据框中,我们已经将“城市”和“年份”这两列设置为了多重索引。现在,假设我们想要获取所有城市的标签值向量,我们可以使用 Pandas 中的 get_level_values() 函数来实现:

city = df.index.get_level_values(0).unique()

print(city)

运行上面的代码,我们就可以得到以下输出:

Index(['北京', '上海', '广州'], dtype='object', name='城市')

可以看到,我们成功地获取了城市的标签值向量。

类似地,如果我们想要获取所有年份的标签值向量,我们可以使用以下代码:

year = df.index.get_level_values(1).unique()

print(year)

输出如下:

Index(['2017', '2018'], dtype='object', name='年份')

结论

本文介绍了如何使用 Pandas 来获取多重索引中所要求层级的标签值向量。我们可以使用 get_level_values() 函数来获取某一层级的标签值向量,并使用 unique() 函数来去重。这种方法非常直观和简洁,可以用于大多数多重索引的应用场景。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程