数据分析基础之《pandas(8)—综合案例》

一、需求

1、现在我们有一组从2006年到2016年1000部最流行的电影数据

数据来源:https://www.kaggle.com/damianpanek/sunday-eda/data

2、问题1

想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?

3、问题2

对于这一组电影数据,如果我们想看Rating、Runtime (Minutes)的分布情况,应该如何呈现数据?

4、问题3

对于这一组电影数据,如果我们希望统计电影分类genre的情况,应该如何处理数据?

二、实现

1、问题1

python 复制代码
# 综合案例
movie= pd.read_csv("./IMDB-Movie-Data.csv")

movie

# 想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
# 评分的平均分
movie["Rating"].mean()

# 导演的人数信息
np.unique(movie["Director"]).size

2、问题2

python 复制代码
# 对于这一组电影数据,如果我们想看Rating、Runtime (Minutes)的分布情况,应该如何呈现数据?
import matplotlib.pyplot as plt

# 创建画布
plt.figure(figsize=(20,8), dpi=100)

# 绘制直方图
plt.hist(movie["Rating"], 20)

# 修改刻度
max_ = movie["Rating"].max()
min_ = movie["Rating"].min()
plt.xticks(np.linspace(max_, min_, num=21))

# 添加网格
plt.grid(linestyle="--", alpha=0.8)

# 显示图像
plt.show()

3、问题3

思路分析:

(1)创建一个temp_df,全为0的dataframe,列索引值为电影的分类

(2)遍历每一部电影,temp_df中把分类出现的列的值置为1

(3)求和

python 复制代码
# 对于这一组电影数据,如果我们希望统计电影分类genre的情况,应该如何处理数据?
# 先统计电影类别都有哪些
movie_genre = [i.split(",") for i in movie["Genre"]]

movie_genre

# 拆分
movie_class = np.unique([j for i in movie_genre for j in i])

movie_class

# 统计每个电影有几个类别
count = pd.DataFrame(np.zeros(shape=[1000, 20], dtype="int32"), columns=movie_class)

count

for i in range(1000):
    count.loc[i, movie_genre[i]] = 1

count

count.sum(axis=0).sort_values(ascending=False).plot(kind="bar", figsize=(20, 8), fontsize=20, colormap="cool")

三、小结

pandas高级数据处理

缺失值处理

缺失值是NaN类型

判断是否存在np.nan缺失值

pd.isnull(df).any()

pd.notnull(df).all()

两种思路

删除df.dropna()

替换sr.fillna(value, replace=)

缺失值是其他默认符号

替换df.replace(to_replace="?", value=np.nan)

按照处理nan的步骤

数据离散化

分组

自动分组pd.qcut(data, bins)

自定义分组pd.cut(data, bins)

转换

pd.get_dummies(分好组的数据, prefix=)

数据合并

按方向合并

pd.concat((a,b), axis=)

按索引合并

pd.merge(left, right, how="inner", on=)

交叉表与透视表

pd.crosstab(value1, value2)

df.pivot_table(字段, index=)

分组与聚合

用dataframe.groupby(by=).聚合函数()

用sr.groupby(sr).聚合函数()

相关推荐
CNSSIRD数据库4 小时前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
SelectDB7 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB7 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
文人sec11 小时前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
databook11 小时前
使用 DuckDB 分析 Parquet 文件
sql·数据分析·nosql
wang_yb11 小时前
使用 DuckDB 分析 Parquet 文件
数据分析·databook
YangYang9YangYan12 小时前
2026 电商数据运营校招 JD 梳理|岗位任务、技能与面试考点汇总
大数据·数据库·数据分析
benchmark_cc12 小时前
策略临时需要一批股票的最新价格,先查行情还是先建股票池?——从量化策略执行逻辑看数据获取顺序
python·数据分析·pandas·量化交易·股票数据·quantdash
IT毕设梦工厂13 小时前
计算机毕业设计选题推荐:基于大数据的城市空气污染物浓度数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·python·信息可视化·数据挖掘·数据分析·课程设计·数据可视化
residual_fan13 小时前
航空发动机故障诊断专用智能体(六):实际机队健康管理中的应用考量与展望
人工智能·算法·数据挖掘·数据分析