pandas案例分析


1 需求

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

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

  • 问题1:我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
  • 问题2:对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据?
  • 问题3:对于这一组电影数据,如果我们希望统计电影分类(genre)的情况,应该如何处理数据?

2 实现

首先获取导入包,获取数据

%matplotlib inline
import pandas  as pd
import numpy as np
from matplotlib import pyplot as plt
#文件的路径
path = "./data/IMDB-Movie-Data.csv"
#读取文件
df = pd.read_csv(path)

2.1 问题一:

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

  • 得出评分的平均分

使用mean函数

df["Rating"].mean()
  • 得出导演人数信息

求出唯一值,然后进行形状获取

## 导演的人数
# df["Director"].unique().shape[0]
np.unique(df["Director"]).shape[0]644

2.2 问题二:

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

  • 直接呈现,以直方图的形式

选择分数列数据,进行plot

df["Rating"].plot(kind='hist',figsize=(20,8))

  • Rating进行分布展示

进行绘制直方图

plt.figure(figsize=(20,8),dpi=80)
plt.hist(df["Rating"].values,bins=20)
plt.show()

修改刻度的间隔

# 求出最大最小值
max_ = df["Rating"].max()
min_ = df["Rating"].min()# 生成刻度列表
t1 = np.linspace(min_,max_,num=21)# [ 1.9    2.255  2.61   2.965  3.32   3.675  4.03   4.385  4.74   5.095  5.45   5.805  6.16   6.515  6.87   7.225  7.58   7.935  8.29   8.645  9.   ]# 修改刻度
plt.xticks(t1)# 添加网格
plt.grid()

  • Runtime (Minutes)进行分布展示

进行绘制直方图

plt.figure(figsize=(20,8),dpi=80)
plt.hist(df["Runtime (Minutes)"].values,bins=20)
plt.show()

修改间隔

# 求出最大最小值
max_ = df["Runtime (Minutes)"].max()
min_ = df["Runtime (Minutes)"].min()# # 生成刻度列表
t1 = np.linspace(min_,max_,num=21)# 修改刻度
plt.xticks(np.linspace(min_,max_,num=21))# 添加网格
plt.grid()

2.3 问题三:

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

  • 思路分析

    • 思路

      • 1、创建一个全为0的dataframe,列索引置为电影的分类,temp_df
      • 2、遍历每一部电影,temp_df中把分类出现的列的值置为1
      • 3、求和
  • 1、创建一个全为0的dataframe,列索引置为电影的分类,temp_df
# 进行字符串分割
temp_list = [i.split(",") for i in df["Genre"]]
# 获取电影的分类
genre_list = np.unique([i for j in temp_list for i in j]) # 增加新的列
temp_df = pd.DataFrame(np.zeros([df.shape[0],genre_list.shape[0]]),columns=genre_list)
  • 2、遍历每一部电影,temp_df中把分类出现的列的值置为1
for i in range(1000):
#     temp_df.loc[temp_df.index[i],temp_list[i]]=1temp_df.iloc[i, temp_df.columns.get_indexer(temp_list[i])] = 1
print(temp_df.sum().sort_values())
  • 3、求和,绘图
temp_df.sum().sort_values(ascending=False).plot(kind="bar",figsize=(20,8),fontsize=20,colormap="cool")Musical        5.0
Western        7.0
War           13.0
Music         16.0
Sport         18.0
History       29.0
Animation     49.0
Family        51.0
Biography     81.0
Fantasy      101.0
Mystery      106.0
Horror       119.0
Sci-Fi       120.0
Romance      141.0
Crime        150.0
Thriller     195.0
Adventure    259.0
Comedy       279.0
Action       303.0
Drama        513.0
dtype: float64

pandas案例分析相关推荐

  1. pandas 案例分析:美国各州人口数据分析

    案例分析:美国各州人口数据分析 首先导入文件,并查看数据样本 In [54]: abbr = pd.read_csv("./usapop/state-abbrevs.csv") a ...

  2. pandas 实例操作:美国人口案例分析

    pandas 案例分析:美国人口案例分析 ''' 需求:导入文件,查看原始数据将人口数据和各州简称数据进行合并将合并的数据中重复的abbreviation列进行删除查看存在缺失数据的列找到有哪些sta ...

  3. sklearn分类器算法:逻辑回归及案例分析

    分类算法之逻辑回归 逻辑回归(Logistic Regression),简称LR.它的特点是能够是我们的特征输入集合转化为0和1这两类的概率.一般来说,回归不用在分类问题上,因为回归是连续型模型,而且 ...

  4. numpy 删除所有为_用Numpy和Pandas工具分析销售数据

    在数据分析领域,Python中用到最多的包是numpy,pandas和matplotlib,本文共分为三个部分:1.使用numpy和pandas分析一维数据 2.使用numpy和pandas分析二维数 ...

  5. RFM模型的理解和python案例分析

    RFM模型是什么 RFM是客户关系管理(CRM:Customer Relationship Management)中一种重要的分析模型,通过研究一个客户的交易时间.交易频率和交易总金额来衡量客户的价值 ...

  6. 统计案例分析之预测社会消费品零售总额

    有不足之处,还请大家私信交流. 版权声明:本文为自创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.(该文与课程报告相关,转载请务必附上出处),非常感谢. 本文链接:h ...

  7. 案例分析:FIFA2018球员数据分析

    案例分析练习: FIFA2018球员数据分析 # 引入要使用的库 import numpy as np import pandas as pd import matplotlib.pyplot as ...

  8. stata统计分析及行业应用案例分析_描述性统计分析的应用——基于描述性统计分析识别优质股票...

    描述性统计分析的应用 -基于描述性统计分析识别优质股票 内容导入: 大家好,这里是每天分析一点点. 上期给大家介绍离散趋势,本期介绍描述性统计分析的基本原理与应用,包括集中趋势.离散趋势.偏度与峰度的 ...

  9. Python[统计案例分析/课程内容+补充]

    蚂蚁路过都要感叹"好烦"的Python 亿点简单的代码 最基本的入门知识 Number(数值型) 一些简单的基础操作(必须掌握) String(字符型) [亿点补充]转义字符 字符 ...

最新文章

  1. Zigbee通讯漫谈(初次见面)
  2. opencv imencode和imdecode使用,用于网络传输图片
  3. php和python交互-python与php的比较
  4. Vue2.0 Transition常见用法全解惑
  5. 【数学基础】正态分布为什么如此常见?
  6. CentOS 6.4 升级 Mysq5.5l方法 和 用户远程登录数据库
  7. java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...
  8. 用c++定义两个坐标点,计算两点间距离;进而计算线段的面积
  9. 简单的商品信息管理系统(Java 和sql server数据库)源码
  10. 联想Yoga C930 NM-B741 EYG70 Ariel-SVT笔记本点位图TVW
  11. 读书百客:《山坡羊·北邙山怀古》赏析
  12. 智能对话系统评测标准
  13. [javascript] js删除数组中的元素
  14. Excel公式向导,不会函数也可以单条件求平均值
  15. OpenCV——Python:像素调整、图片裁剪、形状与文字设置3
  16. 基于cisco 模拟公司网络拓扑
  17. 以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。给出队满条件和相应的如对和出队算法。
  18. Centos7+LAMP
  19. 2020年第十一届java B组第一场蓝桥杯省赛真题
  20. ACM/ICPC 之 数论-费马大定理(HNUOJ 13371)

热门文章

  1. ​《头号玩家》中的“绿洲”,用 VR 可以找到
  2. 英特尔第三代 Ice Lake 发布正面与 AMD EPYC PK,结果令人大跌眼镜!
  3. 干货 | 时间序列预测类问题下的建模方案探索实践
  4. 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了...
  5. 分类、检测、分割任务均有SOTA表现,ACNet有多强?
  6. 滴滴自动驾驶部门成立独立公司,CTO张博兼任新公司CEO
  7. 云从科技完成B+轮超10亿元融资,多个国家基金进入
  8. 突发 | Yann LeCun卸任!Facebook变天,做AI不能落地是不成了
  9. 知乎高赞:OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~
  10. Nginx 挂了怎么办?怎么实现高可用?