如何在Pandas中扁平化MultiIndex

如何在Pandas中扁平化MultiIndex

在这篇文章中,我们将讨论如何在pandas中扁平化multiIndex。

扁平化所有级别的MultiIndex:

在这个方法中,我们将通过使用reset_index()函数来平整数据框架的所有层次。

语法 :

dataframe.reset_index(inplace=True)

注意: Dataframe是输入数据框架,我们必须创建数据框架的MultiIndex。

语法 :

MultiIndex.from_tuples([(tuple1),.......,(tuple n),names=[column_names])

参数:

  • tuple是值
  • column_names是每个元组值中的列名。

示例 :

在这个例子中,我们将与multiIndex一起创建一个数据框架,并在python编程语言中显示它。

import pandas as pd
  
# create DataFrame muktiindexex
data = pd.MultiIndex.from_tuples([('Web Programming', 'php', 'sub1'),
                                  ('Scripting', 'python', 'sub2'),
                                  ('networks', 'computer network', 'sub3'),
                                  ('architecture', 'computer organization', 'sub4'),
                                  ('coding', 'java', 'sub5')],
                                 names=['Course', 'Subject name', 'subject id'])
  
# create dataframe with student marks
data = pd.DataFrame({'ravi': [98, 89, 90, 88, 93],
                     'reshma': [78, 89, 80, 98, 63], 
                     'sahithi': [78, 89, 80, 98, 63]},  
                    index=data)
  
# display
data

输出:

如何在Pandas中扁平化MultiIndex?

现在,我们将把所有级别的指数拉平:

import pandas as pd
  
# create DataFrame muktiindexex
data = pd.MultiIndex.from_tuples([('Web Programming', 'php', 'sub1'),
                                  ('Scripting', 'python', 'sub2'),
                                  ('networks', 'computer network', 'sub3'),
                                  ('architecture', 'computer organization', 'sub4'),
                                  ('coding', 'java', 'sub5')],
                                 names=['Course', 'Subject name', 'subject id'])
  
# create dataframe with student marks
  
data = pd.DataFrame({'ravi': [98, 89, 90, 88, 93], 
                     'reshma': [78, 89, 80, 98, 63],
                     'sahithi': [78, 89, 80, 98, 63]},
                    index=data)
  
  
# flatten the index of all levels
data.reset_index(inplace=True)
  
# display
data

输出:

如何在Pandas中扁平化MultiIndex?

扁平化特定级别的MultiIndex

通过使用特定的级别,我们可以通过使用以下语法得到。

dataframe.reset_index(inplace=True,level=['level_name'])

其中,

  • dataframe是输入数据帧
  • level_name是多索引级别的名称。

示例:

在这个例子中,我们将创建一个数据框架,并对multiIndex的特定级别进行扁平化处理,并在python编程语言中显示。

import pandas as pd
  
# create DataFrame muktiindexex
data = pd.MultiIndex.from_tuples([('Web Programming', 'php', 'sub1'),
                                  ('Scripting', 'python', 'sub2'),
                                  ('networks', 'computer network', 'sub3'),
                                  ('architecture', 'computer organization', 'sub4'),
                                  ('coding', 'java', 'sub5')],
                                 names=['Course', 'Subject name', 'subject id'])
  
# create dataframe with student marks
  
data = pd.DataFrame({'ravi': [98, 89, 90, 88, 93], 
                     'reshma': [78, 89, 80, 98, 63],
                     'sahithi': [78, 89, 80, 98, 63]},
                    index=data)
  
# flatten the index of level with course column
data.reset_index(inplace=True, level=['Course'])
  
# display
data

输出:

如何在Pandas中扁平化MultiIndex?

我们还可以指定多个级别。

import pandas as pd
  
# create DataFrame muktiindexex
data = pd.MultiIndex.from_tuples([('Web Programming', 'php', 'sub1'),
                                  ('Scripting', 'python', 'sub2'),
                                  ('networks', 'computer network', 'sub3'),
                                  ('architecture', 'computer organization', 'sub4'),
                                  ('coding', 'java', 'sub5')],
                                 names=['Course', 'Subject name', 'subject id'])
  
# create dataframe with student marks
  
data = pd.DataFrame({'ravi': [98, 89, 90, 88, 93],
                     'reshma': [78, 89, 80, 98, 63], 
                     'sahithi': [78, 89, 80, 98, 63]}, 
                    index=data)
  
# flatten the index of level with course 
# and subject id columns
data.reset_index(inplace=True, level=['Course', 'subject id'])
  
# display
data

输出:

如何在Pandas中扁平化MultiIndex?

使用to_records()方法

这是一个pandas模块的方法,用于将多指标数据框架转换为每条记录并显示。

语法 :

dataframe.to_records()

示例:

import pandas as pd
  
# create DataFrame muktiindexex
data = pd.MultiIndex.from_tuples([('Web Programming', 'php', 'sub1'),
                                  ('Scripting', 'python', 'sub2'),
                                  ('networks', 'computer network', 'sub3'),
                                  ('architecture', 'computer organization', 'sub4'),
                                  ('coding', 'java', 'sub5')],
                                 names=['Course', 'Subject name', 'subject id'])
  
# create dataframe with student marks
  
data = pd.DataFrame({'ravi': [98, 89, 90, 88, 93],
                     'reshma': [78, 89, 80, 98, 63],
                     'sahithi': [78, 89, 80, 98, 63]}, 
                    index=data)
  
pd.DataFrame(data.to_records())

输出:

如何在Pandas中扁平化MultiIndex?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程