接下来我将详细讲解“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库来实现数据透视表。通过两个示例,我们进一步说明了如何使用数据透视表分析数据。数据透视表是一个非常强大和实用的工具,可以帮助我们更好地理解数据。