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

使用unstack()函数实现数据的解堆叠和重塑

发布时间:2024-01-09 17:24:22

unstack()函数是Pandas库中的一个函数,用于将数据从堆叠状态恢复到原始的多维形式。在实际应用中,unstack()函数可以用于将层叠数据转换为更易处理和理解的格式。

下面我们通过一个示例来说明unstack()函数的使用方法。

假设我们有一个数据集,包含了不同城市、不同年份和对应的人口数量:

city      year     population

Beijing   2020     21540000

Beijing   2019     21009000

Shanghai  2020     24284000

Shanghai  2019     24150000

Guangzhou 2020     14726000

Guangzhou 2019     14346000

现在我们希望将这个数据集按照城市进行重塑,将年份作为列名,人口数量作为对应的值。

首先,我们需要将城市设为索引(index),年份设为列名(columns),并使用人口数量填充数据。可以使用Pandas的pivot函数完成这一步。

import pandas as pd

data = {'city': ['Beijing', 'Beijing', 'Shanghai', 'Shanghai', 'Guangzhou', 'Guangzhou'],

        'year': [2020, 2019, 2020, 2019, 2020, 2019],

        'population': [21540000, 21009000, 24284000, 24150000, 14726000, 14346000]}

df = pd.DataFrame(data)

pivot_df = df.pivot(index='city', columns='year', values='population')

经过这一步的处理,我们得到了一个新的DataFrame对象pivot_df:

          2019       2020

Beijing   21009000   21540000

Guangzhou 14346000   14726000

Shanghai  24150000   24284000

这个DataFrame对象的每一行代表一个城市,每一列代表一个年份,对应的值是对应年份的人口数量。

接下来,我们可以使用unstack()函数将这个DataFrame对象解堆叠,将年份作为索引,城市作为列名,并对应填充人口数量。

unstack_df = pivot_df.unstack()

经过这一步处理,我们得到了一个新的DataFrame对象unstack_df:

year       city      

2019       Beijing       21009000

           Guangzhou     14346000

           Shanghai      24150000

2020       Beijing       21540000

           Guangzhou     14726000

           Shanghai      24284000

这个DataFrame对象的每一行代表一个(年份,城市)组合, 列是年份,第二列是城市,第三列是对应的人口数量。

unstack()函数的作用是将数据从堆叠状态恢复到原始的多维形式。在这个例子中,我们使用pivot()函数将原始数据集进行了重塑,并生成了一个二维表格。然后,使用unstack()函数将二维表格解堆叠,恢复到原始的三维形式。

以上就是使用unstack()函数实现数据的解堆叠和重塑的例子。unstack()函数是Pandas库中非常有用的一个函数,可以帮助我们更好地理解和处理层叠数据。在实际应用中,unstack()函数可以帮助我们进行数据的转换和清洗,使得数据更易于分析和处理。