python数据分析(四)——pandas常用统计方法

系列文章目录
python数据分析(一)——series和读取外部数据
python数据分析(二)——DataFrame
python数据分析(三)——pandas缺失值处理


pandas常用统计方法


前言

假设现在有一组从2006年到2016年1000部最流行的电影数据,怎么获取这些电影数据评分中的平均分、导演人数等信息?


代码如下(示例):

import pandas as pd
import numpy as np

df = pd.read_csv(".../IMDB-Movie-Data.csv")

print(df.info())

# 获取平均评分
print(df["Rating"].mean())

# 获取导演人数 存在同一个导演拍多部电影的情况
# 方法一 set使list数据变成集合 集合使数据变唯一 tolist转换成列表
print(len(set(df["Director"].tolist())))
# 方法二
print(len(df["Director"].unique()))

# 获取演员人数 演员为list类型
temp_actors_list = df["Actors"].str.split(",").tolist()

# 双重for循环
actors_list = [i for j in temp_actors_list for i in j]
actors_num = len(set(actors_list))
print(actors_num)

# 电影时长的最大值
max_runtime = df["Runtime (Minutes)"].max()  # 最小值.min()
print(max_runtime)

# 电影时长最大值的位置
max_runtime_index = df["Runtime (Minutes)"].argmax()  # 最小值的位置.argmin()
print(max_runtime_index)

# 电影时长中位数
max_runtime_median = df["Runtime (Minutes)"].median()  # 最小值的位置.argmin()
print(max_runtime_median)

一、电影数直方图

对于这一组电影数据,如果想了解rating,runtime的分布情况,应该如何呈现数据?

runtime分布情况

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib.font_manager import FontProperties

font = FontProperties(fname="/System/Library/Fonts/Supplemental/Songti.ttc", size=14)

df = pd.read_csv(".../IMDB-Movie-Data.csv")

# print(df.head(1))
# print(df.info())

# rating,runtime分布情况
# 选择图形,对连续数据进行统计,直方图
# 准备数据
runtime_data = df["Runtime (Minutes)"].values
runtime_max = df["Runtime (Minutes)"].max()
runtime_min = df["Runtime (Minutes)"].min()

# 计算组数
num_bin = (runtime_max - runtime_min) // 5

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

plt.hist(runtime_data, num_bin)
plt.xticks(range(runtime_min, runtime_max+5, 5), fontproperties=font)
plt.yticks(fontproperties=font)
plt.grid(alpha=0.3, linestyle='-.')

plt.show()

rating分布情况

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib.font_manager import FontProperties

font = FontProperties(fname="/System/Library/Fonts/Supplemental/Songti.ttc", size=14)

df = pd.read_csv("/Users/shenyanqi/Documents/python数据分析学习/CSV/archive_03/IMDB-Movie-Data.csv")

# print(df.head(1))
# print(df.info())

# rating,runtime分布情况
# 选择图形,对连续数据进行统计,直方图
# 准备数据
rating_data = df["Rating"].values

rating_max = rating_data.max()
rating_min = rating_data.min()

print(rating_min)
print(rating_max)

# 计算组数
# num_bin = (rating_max - rating_min) // 0.5

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

# 传入参数将组数变为列表
_x = np.arange(rating_min, rating_max+0.5, 0.5)

# 传入列表参数
plt.hist(rating_data, _x)
plt.xticks(_x, fontproperties=font)
plt.yticks(fontproperties=font)
plt.grid(alpha=0.3, linestyle='-.')

plt.show()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值