欢迎访问宙启技术站
智能推送

通过unstack()函数将堆叠数据重整为规整数据

发布时间:2024-01-09 17:15:21

unstack()函数是Pandas库中的一个函数,用于将堆叠数据(stacked data)重整为规整数据(unstacked data)。堆叠数据是指数据的行索引和列索引都是层次化的,而规整数据是指数据的行索引和列索引都是单层的。通过使用unstack()函数,我们可以将堆叠数据按照我们想要的方式进行重组。

下面是一个使用unstack()函数的示例:

假设我们有一个包含学生考试成绩的DataFrame,其中行索引是学生的姓名,列索引是科目和具体考试日期的层次化索引,值是对应科目在对应日期的考试成绩。我们希望将这个堆叠数据按照科目进行重整,使得行索引是学生姓名,列索引是科目,值是对应科目的所有考试成绩。

首先,让我们创建一个包含堆叠数据的DataFrame:

import pandas as pd

data = {'姓名': ['小明', '小红', '小刚', '小明', '小红', '小刚'],
        '科目': ['数学', '数学', '数学', '语文', '语文', '语文'],
        '考试日期': ['2021-01-01', '2021-02-01', '2021-03-01', '2021-01-01', '2021-02-01', '2021-03-01'],
        '考试成绩': [90, 95, 80, 85, 90, 95]}

df = pd.DataFrame(data)
stacked_df = df.set_index(['姓名', '科目', '考试日期'])

现在,stacked_df是一个堆叠数据,它的行索引包含三个层次:姓名、科目和考试日期。我们可以使用unstack()函数将其重整为规整数据:

unstacked_df = stacked_df.unstack()

unstack()函数将第三个层次的索引(考试日期)作为列索引,得到以下结果:

         考试成绩                      
考试日期 2021-01-01 2021-02-01 2021-03-01
姓名  科目                                 
小刚  数学      NaN        NaN       80.0
    语文      NaN        NaN       95.0
小明  数学     90.0        NaN        NaN
    语文     85.0        NaN        NaN
小红  数学      NaN       95.0        NaN
    语文      NaN       90.0        NaN

现在,我们得到了一个规整数据,行索引是学生的姓名,列索引是考试日期,值是对应的考试成绩。可以看到,unstack()函数将堆叠数据转换为了规整数据,更方便我们进行分析和处理。

在实际的数据分析中,我们经常会遇到需要重整数据的情况。通过使用unstack()函数,我们可以灵活地将堆叠数据按照我们的需求进行重组,进一步加强数据的可读性和可操作性。