美文网首页
Pandas 教程 — 筛选让你动心的电影(1)

Pandas 教程 — 筛选让你动心的电影(1)

作者: 数分进阶 | 来源:发表于2019-03-16 11:18 被阅读0次

    在学习 Pandas 之前,首先需要安装 Pandas,在 Python 中安装模块使用 pip install 模块名 即可,但因为 Pandas 依赖于很多包,所以直接安装的话很大概率会遇到各种各样的问题。

    建议直接安装 Anaconda,省时省心,Anaconda 会默认安装众多流行的科学、数学、工程、数据分析的模块,比如 Numpy、Scipy、Matplotlib、Pandas 等,同时可以方便地对各种模块进行管理, 搭配着使用 Python 编辑器 Pycharm,干活绝对不累。安装时请注意区分不同的版本,本教程使用的是 Python 2.7。

    一切就绪后,开始读取电影数据文件 (下载),看看数据都有啥

    import pandas as pd
    
    movie_pd = pd.read_csv('douban_movie.csv', header = 0, sep = '\t')
    print movie_pd.info()
    
    

    pd.read_csv( ) 负责把 csv 文件读入进来,关于文件的读取操作之后会专门讲,这里先不用太在意,把数据跑起来再说,然后 movie_pd.info( ) 输出如下:

    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 3688 entries, 0 to 3687
    Data columns (total 16 columns):
    actor_count     3688 non-null int64
    actors          3688 non-null object
    category        3688 non-null object
    cover_url       3688 non-null object
    id              3688 non-null int64
    is_playable     3688 non-null bool
    is_watched      3688 non-null bool
    rank            3688 non-null int64
    rating          3688 non-null object
    regions         3688 non-null object
    release_date    3688 non-null object
    score           3688 non-null float64
    title           3688 non-null object
    types           3688 non-null object
    url             3688 non-null object
    vote_count      3688 non-null int64
    dtypes: bool(2), float64(1), int64(4), object(9)
    memory usage: 410.6+ KB
    None
    
    

    这个输出的信息量很大,有索引、列名、列的数据类型 ( int64、bool、float64、object )。

    可以看出电影数据共有 16 列,列名分别是:actor_count (主演的人数)、actors (主演列表)、category (分类)、cover_url (封面图片网址)、id (电影id)、is_playable (是否可以播放)、is_watched (是否可以观看)、rank (排名)、rating (评分, 含星级)、regions (制片国家)、release_date (上映日期)、score (评分)、title (电影标题)、types (类型, 多个)、url (电影详情页网址)、vote_count (评价的人数)。

    对应的豆瓣电影页面如下:

    image

    然后接着看看能不能得到一些定量的数据

    print movie_pd.describe()
    
    

    输出的结果如下:

    actor_count            id         rank        score     vote_count
    count  3688.000000  3.688000e+03  3688.000000  3688.000000    3688.000000
    mean      8.418655  3.655456e+06   124.189534     8.522587   71773.012744
    std       6.067463  6.095063e+06   116.329492     0.394342  119190.948797
    min       0.000000  1.291543e+06     1.000000     7.300000     305.000000
    25%       4.000000  1.296384e+06    36.000000     8.300000    3513.000000
    50%       7.000000  1.307067e+06    87.000000     8.500000   15786.000000
    75%      12.000000  2.150085e+06   177.000000     8.800000   85188.000000
    max      54.000000  2.710254e+07   534.000000     9.700000  875424.000000
    
    

    可以看出,对于变量类型是 int64 和 float64 的数值型变量,列出了个数、均值、方差、最小值、最大值和四分位数。比如这些电影平均 vote_count 是 71773 人,最多有 875424 个人对某个电影进行了评分,电影平均 score 高达 8.5 分等。

    最后,看看原始数据长什么样子

    print movie_pd.head()
    print movie_pd.tail()
    
    

    输出结果如下:

    actor_count                  actors                category
    0           19    [张国荣, 张丰毅, 巩俐, 葛优...           同性   
    1           10    [伊恩·麦克莱恩, 德里克·雅各比...          同性   
    2            5    [蒂莫西·柴勒梅德, 艾米·汉莫...            同性   
    3            3    [张国荣, 梁朝伟, 张震]                   同性   
    4            5    [赵文瑄, 归亚蕾, 金素梅, 郎雄...]         同性                                cover_url                       id       is_playable 
    0  https://img3.doubanio.com/view/movie_...   1291546        True   
    1  https://img3.doubanio.com/view/movie_...   26700818       False   
    2  https://img3.doubanio.com/view/movie_...   26799731       False   
    3  https://img3.doubanio.com/view/movie_...   1292679        False   
    4  https://img3.doubanio.com/view/movie_...   1303037        False   
    
       is_watched  rank     rating         regions      release_date   score  
    0       False     1  [9.5, 50]     [中国大陆, 香港]     1993-01-01    9.5  
    1       False     2  [9.3, 50]     [英国]              2016-06-19    9.3   
    2       False     3  [9.3, 50]     [意大利, 法国...]    2017-01-22    9.3   
    3       False     4  [8.8, 45]     [香港, 日本, 韩国]   1997-05-30    8.8   
    4       False     5  [8.8, 45]     [台湾, 美国]        1993-08-04    8.8   
    
           title                 types
    0       霸王别姬          [剧情, 爱情, 同性]   
    1  极品基老伴:完结篇          [喜剧, 同性]   
    2  请以你的名字呼唤我          [爱情, 同性]   
    3       春光乍泄          [剧情, 爱情, 同性]   
    4         喜宴       [剧情, 喜剧, 爱情, 同性, 家庭]   
    
                           url                       vote_count  
    0   https://movie.douban.com/subject/1291546/      629403  
    1  https://movie.douban.com/subject/26700818/       13516  
    2  https://movie.douban.com/subject/26799731/         739  
    3   https://movie.douban.com/subject/1292679/      240127  
    4   https://movie.douban.com/subject/1303037/      133193  
    
    

    head( ) 方法会默认显示出 movie_pd 的前 5 行数据

    tail( ) 方法会默认显示 movie_pd 的后 5 行数据

    如果想要显示多于 5 行的数据怎么办呢?传入参数可以,比如 movie_pd.head(10) 表示显示前 10 行数据,tail(20) 表示显示后 20 行数据。

    划重点

    • info( ) 查看数据有哪些字段和字段对应的数据类型
    • describe( ) 对数值型变量进行统计性描述
    • head( n ) 显示数据前 n 行
    • tail( n ) 显示数据后 n 行

    相关文章

      网友评论

          本文标题:Pandas 教程 — 筛选让你动心的电影(1)

          本文链接:https://www.haomeiwen.com/subject/trijmqtx.html