在Pandas中从多索引恢复到单索引数据框架

在Pandas中从多索引恢复到单索引数据框架

在这篇文章中,我们将把pandas数据框架中的多索引还原为单索引。有时,当我们在做探索性数据分析或数据处理时,我们必须在数据框架中进行多索引,以提取有意义的见解或有效和容易地使用列。在做完数据处理后,如果我们想把我们的数据框架从多索引改为单索引,这样看起来会更好,建议将数据框架改为单索引。

索引就像一个地址,这就是如何访问整个数据框架或系列的任何数据点。行和列都有索引,行的索引被称为索引,而对于列来说。

在这篇文章中,我们将使用homelessness.csv文件作为数据框架,并对其应用方法。

# importing pandas library as alias pd.
import pandas as pd
  
# using pandas read_csv().
df = pd.read_csv('homelessness.csv')
df.head()

输出:

在Pandas中从多索引恢复到单索引数据框架

我们可以看到,这个数据框架没有索引。因此,我们通过使用pandas set_index()创建一个多索引,并将列名作为列表传给它。

# making the 'region' and 'state' column as index.
df_mi = df.set_index(['region' , 'state' , 'individuals'])
  
print(df_mi.head())

输出:

在Pandas中从多索引恢复到单索引数据框架

现在,数据框架有了分层索引或多索引。使用Pandas的内置函数reset_index()将数据框架的索引从多索引恢复到单索引。

语法: DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=")

返回 : (Data Frame or None) 带有新索引的DataFrame,如果inplace=True则为None。

使用上述方式恢复多指标,即使用reset_index(),我们可以按照以下方式进行。

1.通过使用该指数的水平。
2.通过使用索引的名称。

通过使用指数的水平

通过使用level关键字将值传递给函数,该关键字接受级别列表,我们希望从索引位置恢复这些值。正如我们所知道的,多索引形成了一个索引的层次,这就是为什么这些索引也被称为层次索引。在这个数据框架中,”地区 “是第(0)层索引或主索引,”状态 “是第(1)层索引,”个人 “是第(2)层索引。通过保留’state’索引和恢复’region’和’individuals’索引,将Dataframe转换为一个单一索引。

# using the reset_index(), reverting the
# level 0 and level 2 indexes.
df_si_level = df_mi.reset_index( level = [0 , 2] )
  
print(df_si_level.head())

输出:

在Pandas中从多索引恢复到单索引数据框架

通过使用索引的名称

在这个方法中,只需将列表中的索引名称传递给reset_index()。将数据框架转换为一个单一的索引,通过保留’个人’索引和恢复’区域’和’状态’索引,只是绕过它们在列表中的名字。

# using the reset_index(), reverting 
# the 'region' and 'state' indexes.
df_si_name = df_mi.reset_index([ 'region' , 'state' ])
  
print(df_si_name.head())

输出 :

在Pandas中从多索引恢复到单索引数据框架

注意 :如果我们想让Dataframe没有索引,或者我们不想让任何列作为索引,那么在这种情况下,我们可以在reset_index()中传递所有的索引或级别的名称,以使Dataframe没有索引。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程