Python实现数据透视表详解

  • Post category:Python

接下来我将详细讲解“Python实现数据透视表”的完整实例教程。

前言

数据透视表是一种非常常见的数据分析工具,从多个维度分析数据,帮助我们更好的理解数据。常见的数据分析工具,如Excel和Pandas,都支持数据透视表分析。

在本教程中,我们将使用Python的Pandas库来实现数据透视表,并通过两个示例进一步说明如何使用数据透视表分析数据。

实例一:电影评分数据

在本示例中,我们将使用一个包含电影评分数据的数据集。数据集中包含以下字段:用户ID、电影ID、评分和时间戳。我们将使用数据透视表来计算评分最高的电影Top 5和评分最高的用户Top 5。

导入数据

我们先导入数据,使用Pandas的read_csv函数,读取文件中的数据。

import pandas as pd

# 读取数据
df = pd.read_csv('ratings.csv')

# 查看数据
print(df.head())

输出结果如下:

   userId  movieId  rating   timestamp
0       1       31     2.5  1260759144
1       1     1029     3.0  1260759179
2       1     1061     3.0  1260759182
3       1     1129     2.0  1260759185
4       1     1172     4.0  1260759205

我们看到数据集中包含用户ID、电影ID、评分和时间戳等四个字段。

计算Top电影和Top用户

我们通过一条语句就可以计算出Top 5的电影和用户。

# 计算评分最高的电影Top 5
print(df.pivot_table(index='movieId', values='rating', aggfunc='mean').nlargest(5, 'rating'))

# 计算评分最高的用户Top 5
print(df.pivot_table(index='userId', values='rating', aggfunc='mean').nlargest(5, 'rating'))

输出结果如下:

          rating
movieId         
163949       5.0
71180        5.0
51471        5.0
52617        5.0
106161       5.0

          rating
userId          
53           5.0
232          5.0
239          5.0
410          5.0
449          5.0

我们看到,在一条语句中,我们成功地计算出了评分最高的电影Top 5和评分最高的用户Top 5。

实例二:商品销售数据

在本示例中,我们将使用一个包含商品销售数据的数据集。数据集中包含以下字段:日期、城市、商品、销售额和销售量。我们将使用数据透视表来计算每天总销售额、每天每个城市的总销售额、每天每个商品的总销售额。

导入数据

我们先导入数据,使用Pandas的read_csv函数,读取文件中的数据。

import pandas as pd

# 读取数据
df = pd.read_csv('sales.csv')

# 查看数据
print(df.head())

输出结果如下:

       Date City Product  Sales  Quantity
0  20180101   BJ       A   1500        20
1  20180101   SH       B   2000        25
2  20180101   GZ       A   1000        15
3  20180102   BJ       C    500        10
4  20180102   SH       B   3000        30

我们看到数据集中包含日期、城市、商品、销售额和销售量等五个字段。

计算总销售额

我们可以通过一条语句来计算总销售额。

# 计算每一天的总销售额
print(df.pivot_table(index='Date', values='Sales', aggfunc='sum'))

输出结果如下:

           Sales
Date            
20180101    4500
20180102    8800
20180103    6400
20180104    3700
20180105    5300
...          ...
20181227    4800
20181228    2640
20181229    2160
20181230    4680
20181231    2160

[365 rows x 1 columns]

我们看到,数据透视表成功地计算了每一天的总销售额。

计算每个城市的总销售额

我们可以通过一条语句来计算每个城市的总销售额。

# 计算每一天每个城市的总销售额
print(df.pivot_table(index=['Date', 'City'], values='Sales', aggfunc='sum'))

输出结果如下:

                Sales
Date     City       
20180101 BJ      1500
         GZ      1000
         SH      2000
20180102 BJ      3000
         GZ      1000
...               ...
20181230 SH      2400
         SZ       800
20181231 BJ      2400
         GZ      1200
         SH       560

[1095 rows x 1 columns]

我们看到,数据透视表成功地计算了每一天每个城市的总销售额。

计算每个商品的总销售额

我们可以通过一条语句来计算每个商品的总销售额。

# 计算每一天每个商品的总销售额
print(df.pivot_table(index=['Date', 'Product'], values='Sales', aggfunc='sum'))

输出结果如下:

                 Sales
Date     Product       
20180101 A        2500
         B        2000
20180102 B        3000
         C         500
...                ...
20181230 A         800
         B        1600
         C        1600
20181231 A         400
         B        1000
         C         760

[1095 rows x 1 columns]

我们看到,数据透视表成功地计算了每一天每个商品的总销售额。

结论

在本教程中,我们学习了如何使用Python的Pandas库来实现数据透视表。通过两个示例,我们进一步说明了如何使用数据透视表分析数据。数据透视表是一个非常强大和实用的工具,可以帮助我们更好地理解数据。