Python Pandas – 设置多级索引中的单个特定新级别

Python Pandas – 设置多级索引中的单个特定新级别

Python pandas数据框架中,设置多重索引是非常常见的。它允许您更好的组织并访问复杂的数据层次结构。本文将介绍如何在已有的多重索引中设置单个特定新级别。

什么是 Pandas 多级索引?

多级索引在Pandas库中也被称为分层索引,它通过在一个轴(Orientation)或多个轴上设置多个(两个或两个以上)索引级别来构建具有层次结构的数据结构。这种索引在分析和操作具有多个维度的数据(如时间序列)时非常实用。例如,多级索引可以在同一数据框中实现不同的时间序列数据和特征,并提供快速的子集选择和多索引级别的操作。

例如以下 Pandas 数据框:

data = {'year': ['2010','2010','2011','2011'],
        'fruit': ['apple','orange','apple','orange'],
        'production': [230, 100, 210, 190]}
df = pd.DataFrame(data)

输出:

year    fruit   production

0 2010 apple 230
1 2010 orange 100
2 2011 apple 210
3 2011 orange 190

我们可以使用set_index方法将其中两列设为多级索引:

df.set_index(['year','fruit'], inplace=True)

输出:

              production
year fruit              
2010 apple           230
     orange          100
2011 apple           210
     orange          190

此时,’year’和’fruit’被设置为两级多重索引。现在我们可以使用这些多重索引来访问特定数据。

如何设置单个特定新级别?

我们可以使用Pandas方法reorder_levels()函数来调整已有的多级索引中每个级别的顺序。此外,我们还可以使用multiindex的set_levels()函数来设置当前层级别的新唯一值。创建一个DataFrame并添加多级索引:

import pandas as pd

data = {'state': ['Texas','Texas','New York','New York'],
        'city': ['Houston','Dallas','New York City','Buffalo'],
        'temperature': [30,25,20,15]}

df = pd.DataFrame(data)
df = df.set_index(['state','city'])
print(df)

输出:

                        temperature
state         city                
Texas         Houston               30
              Dallas                25
New York      New York City        20
              Buffalo              15

为了添加一个全新的索引级别,我们可以使用Pandas MultiIndex类的构造函数或Pandas Series和DataFrame的from_product()方法来创建额外的索引级别。接下来,让我们使用MultiIndex构造函数来添加新的索引标签值:

new_labels = ['North Region','South Region','West Region','East Region']
multi_index = pd.MultiIndex.from_product([new_labels, df.index.levels[0]])

df_new = pd.DataFrame(df.values, index=df.index.set_levels(multi_index, level=0), columns=df.columns)
print(df_new)

输出:

*注:因为数据没有实际意义,因此结果仅用作示例。

                              temperature
level_0       level_1               
North Region  Texas         30
              New York      20
South Region  Texas         25
              New York      15
West Region   Texas         30
              New York      20
East Region   Texas         25
              New York      15

让我们看看我们所作的更改。在最终的输出中,我们可以看到一个新的索引级别在顶部,并将原来的索引下推一级。

结论

本文介绍了如何设置Pandas DataFrame中的单个特定新级别,如何使用多级索引构建数据的层次结构,并对于已有的多级索引如何重新排列和设置新唯一值。通过掌握多级索引的操作,您可以更加灵活地处理和组织具有多个维度的数据。希望本文可以帮助您更好地了解 Pandas 多级索引的应用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程