利用pandas库进行数据分析

一.这段代码的主要目的是读取IMDB电影数据集,并进行一些基本的数据分析

# coding=utf-8
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

# 定义CSV文件的路径
file_path = './IMDB-Movie-Data.csv'

# 使用pandas的read_csv函数读取CSV文件,返回一个DataFrame对象
df = pd.read_csv(file_path)

# 打印出DataFrame的信息,包括索引、数据类型、内存使用等
# 注意这里是方法调用,所以后面有括号
print(df.info())

# 计算'Rating'列的平均值
# 使用pandas的mean方法计算平均值
print(df['Rating'].mean())

# 计算'Director'列中不同导演的数量
# 使用pandas的unique方法去重,然后计算长度
print(len(df['Director'].unique()))

# 获取演员的人数
# 首先将'Actors'列中的字符串按逗号分割成列表
temp_actors_list = df['Actors'].str.split(',').tolist()
# 将嵌套列表展开成一个平面列表
actors_list = [i for j in temp_actors_list for i in j]
# 计算演员列表的长度,即演员的数量
actors_num = len(set(actors_list))

print(actors_num)

在这段代码中,我们首先读取了一个名为IMDB-Movie-Data.csv的CSV文件,并将其转换为一个pandas的DataFrame对象。然后,我们打印出DataFrame的信息。接着,我们计算了Rating列的平均值,并打印出来。然后,我们计算了Director列中不同导演的数量,并打印出来。最后,我们获取了演员的人数,通过将Actors列中的字符串按逗号分割成列表,然后计算了列表中不同演员的数量。

二.这段代码的主要目的是读取IMDB电影数据集,并绘制电影时长(Runtime)的分布直方图

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt

# 定义CSV文件的路径
file_path = './IMDB-Movie-Data.csv'

# 使用pandas的read_csv函数读取CSV文件,返回一个DataFrame对象
df = pd.read_csv(file_path)

# 打印出DataFrame的前1行
# print(df.head(1))

# 打印出DataFrame的信息,包括索引、数据类型、内存使用等
# print(df.info)

# 分析电影时长(Runtime)的分布情况
# 选择图形,直方图
# 准备数据
# 获取'Runtime (Minutes)'列的数据
runtime_data = df['Runtime (Minutes)'].values

# 计算时长的最大值和最小值
max_runtime = runtime_data.max()
min_runtime = runtime_data.min()

# 计算直方图的组数
# 假设我们希望每5分钟为一组
num_bins = (max_runtime - min_runtime) // 5

# 设置图形的大小
plt.figure(figsize=(20, 8), dpi=80)

# 绘制直方图
# bins参数设置组数,density参数设置为True表示归一化,即每个直方图的面积为1
# facecolor设置直方图颜色,alpha设置透明度
plt.hist(runtime_data, bins=num_bins, density=True, facecolor='blue', alpha=0.5)

# 显示图形
plt.show()

在这段代码中,我们首先读取了一个名为IMDB-Movie-Data.csv的CSV文件,并将其转换为一个pandas的DataFrame对象。然后,我们从DataFrame中提取了电影时长的数据。接着,我们计算了电影时长的最大值和最小值,并根据这两个值计算了直方图的组数。最后,我们设置了图形的大小,绘制了电影时长的分布直方图,并显示了图形。效果如下:

三.这段代码的主要目的是读取IMDB电影数据集,并绘制电影评分(Rating)的分布直方图

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt

# 定义CSV文件的路径
file_path = './IMDB-Movie-Data.csv'

# 使用pandas的read_csv函数读取CSV文件,返回一个DataFrame对象
df = pd.read_csv(file_path)

# 打印出DataFrame的前1行
# print(df.head(1))

# 打印出DataFrame的信息,包括索引、数据类型、内存使用等
# print(df.info)

# 分析电影评分(Rating)的分布情况
# 选择图形,直方图
# 准备数据
# 获取'Rating'列的数据
rating_data = df['Rating'].values

# 计算评分的最大值和最小值
max_rating = rating_data.max()
min_rating = rating_data.min()

# 计算直方图的组数
# 由于评分是10分制,我们希望每0.5分为一组
num_bins_list = [1.6]
i = 1.6
while i <= max_rating:
    i += 0.5
    num_bins_list.append(i)

# 设置图形的大小
plt.figure(figsize=(20, 8), dpi=80)

# 绘制直方图
# bins参数设置组数列表,density参数设置为True表示归一化,即每个直方图的面积为1
# facecolor设置直方图颜色,alpha设置透明度
plt.hist(rating_data, bins=num_bins_list, density=True, facecolor='blue', alpha=0.5)

# 显示图形
plt.show()

在这段代码中,我们首先读取了一个名为IMDB-Movie-Data.csv的CSV文件,并将其转换为一个pandas的DataFrame对象。然后,我们从DataFrame中提取了电影评分的数据。接着,我们计算了电影评分的最大值和最小值,并根据这两个值计算了直方图的组数列表。最后,我们设置了图形的大小,绘制了电影评分的分布直方图,并显示了图形。效果如下:

请注意,直方图的组数是通过一个循环动态生成的,每0.5分为一组,从1.6开始,直到最大评分值。这样可以确保每个组的范围是0.5分,符合10分制的电影评分。

四.这段代码的主要功能是分析IMDB电影数据集中的电影类型分布情况,并将结果以条形图的形式展示出来

# 指定编码为utf-8
# coding=utf-8

# 导入pandas库用于数据处理,numpy库用于数值计算,matplotlib库用于绘图
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

# 定义数据文件路径
file_path = './IMDB-Movie-Data.csv'

# 使用pandas读取csv文件
df = pd.read_csv(file_path)

# 将电影类型字符串分割成列表
temp_list = df['Genre'].str.split(',').tolist()

# 获取所有电影类型并去重
genres_list = list(set([i for j in temp_list for i in j]))

# 构造一个全为0的DataFrame,列名为电影类型
zero_df = pd.DataFrame(np.zeros((df.shape[0], len(genres_list))), columns=genres_list)

# 遍历电影类型,将对应的电影类型的列设为1
for i in range(df.shape[0]):
    zero_df.loc[i, temp_list[i]] = 1

# 统计每个电影类型有多少部电影
genre_count = zero_df.sum(axis=0)

# 对电影类型计数进行排序
genre_count = genre_count.sort_values()

# 获取排序后的电影类型和对应的计数
_x = genre_count.index
_y = genre_count.values

# 设置图形大小
plt.figure(figsize=(20, 8), dpi=80)

# 绘制条形图,设置条形宽度和颜色
plt.bar(range(len(_x)), _y, width=0.4, color='orange')

# 设置x轴刻度和标签
plt.xticks(range(len(_x)), _x)

# 显示图形
plt.show()

 这段代码首先读取了IMDB电影数据集,然后统计了每个电影类型出现的次数,并将这些数据以条形图的形式展示出来。效果如下:

 上方代码涉及的IMDB电影数据集如下:

IMDB-Movie-Data文件大小:132.7 K|icon-default.png?t=N7T8https://wwt.lanzoum.com/ikyre1o643dc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJU_AI_NB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值