pandas设置二级索引

pandas设置二级索引

pandas设置二级索引

在pandas中,我们经常需要对数据进行分组和聚合分析。而设置二级索引可以帮助我们更方便地按照多个维度来进行数据处理。本文将详细介绍如何在pandas中设置二级索引,并且演示一些常见的操作。

设置二级索引

在pandas中,可以通过set_index方法来设置二级索引。我们先创建一个示例DataFrame,然后演示如何设置二级索引。

import pandas as pd

data = {
    'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Hangzhou', 'Chengdu'],
    'year': [2019, 2019, 2019, 2019, 2019, 2019],
    'population': [2154, 2424, 1463, 1303, 981, 1665],
    'gdp': [34276, 39000, 25811, 24219, 15768, 21091]
}

df = pd.DataFrame(data)
print(df)

运行以上代码,我们可以得到以下输出:

        city  year  population    gdp
0    Beijing  2019        2154  34276
1   Shanghai  2019        2424  39000
2  Guangzhou  2019        1463  25811
3   Shenzhen  2019        1303  24219
4   Hangzhou  2019         981  15768
5    Chengdu  2019        1665  21091

接下来,我们将cityyear作为二级索引:

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

运行以上代码,我们可以得到以下输出:

                 population    gdp
city       year                    
Beijing    2019        2154  34276
Shanghai   2019        2424  39000
Guangzhou  2019        1463  25811
Shenzhen   2019        1303  24219
Hangzhou   2019         981  15768
Chengdu    2019        1665  21091

可以看到,现在DataFrame的索引已经变为MultiIndex(多级索引)。

选择二级索引数据

在设置了二级索引之后,我们可以通过loc方法选择二级索引的数据。例如,选择cityBeijing的所有数据:

print(df.loc['Beijing'])

运行以上代码,我们可以得到以下输出:

      population    gdp
year                    
2019        2154  34276

如果要选择多个城市的数据,可以使用元组:

print(df.loc[(['Beijing', 'Shanghai'], 2019), :])

运行以上代码,我们可以得到以下输出:

                 population    gdp
city       year                    
Beijing    2019        2154  34276
Shanghai   2019        2424  39000

重置索引

有时候我们需要把二级索引变回列,可以使用reset_index方法。例如:

df_reset = df.reset_index()
print(df_reset)

运行以上代码,我们可以得到以下输出:

        city  year  population    gdp
0    Beijing  2019        2154  34276
1   Shanghai  2019        2424  39000
2  Guangzhou  2019        1463  25811
3   Shenzhen  2019        1303  24219
4   Hangzhou  2019         981  15768
5    Chengdu  2019        1665  21091

可以看到,现在索引已经重置为默认的整数索引。

统计分析二级索引数据

最常见的分析操作之一是对二级索引数据进行聚合统计,例如计算每个城市的总人口和总GDP。

city_stats = df.groupby(level=0).sum()
print(city_stats)

运行以上代码,我们可以得到以下输出:

           population    gdp
city                        
Beijing          2154  34276
Chengdu          1665  21091
Guangzhou        1463  25811
Hangzhou          981  15768
Shanghai         2424  39000
Shenzhen         1303  24219

可以看到,我们成功对每个城市的数据进行了求和。

小结

本文介绍了如何在pandas中设置二级索引,并且演示了如何选择二级索引数据、重置索引以及对二级索引数据进行统计分析。二级索引可以帮助我们更灵活地处理数据,特别适用于多维度数据分析的场景。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程