电影类型热力图:2000-2016 年电影趋势分析
电影类型热力图:2000-2016 年电影趋势分析
本代码使用 Python 分析电影数据集,展示 2000-2016 年间不同电影类型的数量变化趋势,并绘制热力图进行可视化。
步骤:
- **数据准备:**读取电影数据集 'movie.csv'。
- **类型处理:**将 'genres' 列中用 '|' 分隔的电影类型拆分成多个独立的类型。
- **年份分组:**将年份作为索引,将数据集按照年份分组,得出每个年份各电影类型的数量。
- **筛选数据:**提取 2000-2016 年的电影类型数量数据。
- **绘制热力图:**使用 Seaborn 库绘制热力图,横坐标为年份,纵坐标为电影类型,标题为 '电影热力图'。
代码:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 读取数据集
df = pd.read_csv('movie.csv')
# 将genres类型中用‘|’符合隔开
df['genres'] = df['genres'].str.split('|')
# 将年份作为索引,将数据集按照年份分组,得出每个年份各电影类型的数量
df_year = df.set_index('year')['genres'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('genre')
df_year = pd.get_dummies(df_year['genre']).join(df_year['year']).groupby('year').sum()
# 取2000-2016电影类型数量
df_year = df_year.loc[2000:2016]
# 绘制热力图
plt.figure(figsize=(12, 8))
sns.heatmap(df_year, cmap='YlGnBu')
plt.title('电影热力图')
plt.xlabel('电影类型')
plt.ylabel('年份')
plt.show()
解释:
- 使用
df['genres'].str.split('|')将 'genres' 列中的类型以 '|' 分隔成多个独立的类型。 - 使用
df.set_index('year')['genres'].apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('genre')将年份作为索引,并将数据集按照年份分组,并得到每个年份各电影类型的数量。 - 使用
pd.get_dummies(df_year['genre']).join(df_year['year']).groupby('year').sum()对电影类型进行 one-hot 编码,并按照年份进行分组求和。 - 使用
df_year.loc[2000:2016]提取 2000-2016 年的数据。 - 使用
sns.heatmap(df_year, cmap='YlGnBu')绘制热力图,并设置颜色映射为 'YlGnBu'。 - 使用
plt.title('电影热力图')设置标题。 - 使用
plt.xlabel('电影类型')和plt.ylabel('年份')设置坐标轴标签。
通过该代码,我们可以清晰地看到 2000-2016 年间不同电影类型的数量变化趋势,为电影行业的发展提供参考。
提示:
- 可以根据需要修改代码,例如更改年份范围、颜色映射、坐标轴标签等。
- 可以进一步分析数据,例如找出不同年份最受欢迎的电影类型等。
- 还可以将该代码应用于其他领域,例如分析音乐类型、书籍类型等数据。
原文地址: http://www.cveoy.top/t/topic/n31c 著作权归作者所有。请勿转载和采集!