Pandas 多重索引的选择

Pandas 多重索引的选择

在本文中,我们将介绍Pandas中的多重索引以及如何从多重索引中选择和切片数据。多重索引允许您使用多个键来创建一个唯一的行标签,可以更方便地处理多维数据集。

阅读更多:Pandas 教程

创建多重索引

我们可以通过将一个包含多个列的元组列表作为参数来创建多重索引。例如,下面的代码创建了一个包含“state”和“city”列的DataFrame,并使用这两个列创建了一个多重索引:

import pandas as pd

data = {'state': ['CA', 'CA', 'NY', 'NY', 'TX', 'TX'],
        'city': ['San Francisco', 'Los Angeles', 'New York', 'Buffalo', 'Houston', 'Dallas'],
        'population': [883305, 3971883, 8175133, 259985, 2296224, 1343573]}
df = pd.DataFrame(data)
df.set_index(['state', 'city'], inplace=True)
print(df)
Python

输出结果为:

                         population
state city                         
CA    San Francisco         883305
      Los Angeles          3971883
NY    New York             8175133
      Buffalo               259985
TX    Houston              2296224
      Dallas               1343573
Python

单层次索引

现在,我们来看看如何对多重索引中的数据进行选择和切片。首先,我们可以使用.loc和.iloc选择单层次索引数据。

.loc用于基于索引标签选择数据,而.iloc用于基于索引位置选择数据。例如,使用.loc选择来自“NY”州的所有城市的人口数据:

print(df.loc['NY'])
Python

输出结果为:

            population
city                  
New York       8175133
Buffalo         259985
Python

再来看看使用.iloc选择数据的例子。以下代码示例基于位置选择数据,包含第一行和第二行:

print(df.iloc[[0,1]])
Python

输出结果为:

                      population
state city                      
CA    San Francisco       883305
      Los Angeles        3971883
Python

多层次索引

对于多重索引,我们可以使用具有多个索引标签的元组对数据进行选择。例如,以下代码选择“NY”州的“Buffalo”城的人口数据:

print(df.loc[('NY', 'Buffalo')])
Python

输出结果为:

population    259985
Name: (NY, Buffalo), dtype: int64
Python

我们也可以使用提取器。以下代码选择来自所有州的前两个城市的人口数据:

print(df.loc[(slice(None), slice(None)), 'population'].groupby(level=0).head(2))
Python

输出结果为:

state  city         
CA     San Francisco     883305
       Los Angeles      3971883
NY     New York         8175133
       Buffalo           259985
TX     Houston          2296224
       Dallas           1343573
Python

在这个例子中,我们首先使用slice(None)提取了所有可能的第一列和第二列索引标签,然后仅使用“population”列,最后使用.groupby函数返回每个州的前两个城市的数据。

总结

本文介绍了Pandas中的多重索引,以及如何使用.loc和.iloc选择和切片单层和多层次索引数据。多重索引是处理多维数据集时非常有用的工具,可以帮助您更高效地检索数据。如果你想了解更多关于Pandas多重索引的知识,可以查看官方文档。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册