作者:史军2927 | 来源:互联网 | 2024-12-09 14:17
在数据分析领域,对文本数据的处理是一项常见任务,尤其是对于包含多种标签的数据集。本文将通过一个具体的例子——电影数据集,演示如何使用Python及其相关库(如Pandas和Matplotlib)来统计和可视化电影类型。
首先,确保您的环境中已安装了必要的库。如果未安装,可以通过pip命令进行安装:
pip install pandas matplotlib
接下来,我们将加载数据并进行初步的探索:
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
# 设置中文字体支持
from matplotlib.font_manager import FontProperties
fOnt= FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)
# 加载数据
file_path = "C:/Users/ming/Desktop/DataAnalysis-master/day05/code/IMDB-Movie-Data.csv"
df = pd.read_csv(file_path)
# 查看部分数据
print(df["Genre"].head(3))
# 处理电影类型字段,将其拆分为多个类型
movie_genres = df["Genre"].str.split(", ").tolist()
# 获取所有唯一的电影类型
unique_genres = list(set([genre for genres in movie_genres for genre in genres]))
# 创建一个DataFrame用于存储每部电影所属的类型
genre_df = pd.DataFrame(0, index=np.arange(len(df)), columns=unique_genres)
# 填充DataFrame,将每部电影对应的类型位置标记为1
for i, genres in enumerate(movie_genres):
genre_df.loc[i, genres] = 1
# 统计每种类型的电影数量
genre_counts = genre_df.sum(axis=0)
# 对结果进行排序
sorted_genres = genre_counts.sort_values()
# 准备绘图数据
x_labels = sorted_genres.index
y_values = sorted_genres.values
# 绘制条形图
plt.figure(figsize=(10, 6), dpi=80)
plt.bar(range(len(x_labels)), y_values, width=0.4, color='orange')
plt.xticks(range(len(x_labels)), x_labels, fOntproperties=font)
# 添加图表标题和轴标签
plt.xlabel('电影类型', fOntproperties=font)
plt.ylabel('数量', fOntproperties=font)
plt.title('不同电影类型数量分布', fOntproperties=font)
# 显示图表
plt.show()
以上代码首先加载了一个CSV文件,该文件包含了电影的相关信息。然后,通过对“Genre”字段的处理,提取出所有的电影类型,并创建了一个新的DataFrame来记录每部电影属于哪些类型。最后,通过统计每种类型的电影数量,并绘制条形图,直观地展示了不同类型电影的数量分布情况。