zoukankan      html  css  js  c++  java
  • 大数据测试

    1 导入数据

        tmdb_5000_movies="static/data/tmdb_5000_movies.csv"

        # 显示所有列

        pd.set_option('display.max_columns', None)

        # 显示所有行

        pd.set_option('display.max_rows', None)

        #显示宽度

        pd.set_option('display.width', None)

        df_tmdb_5000_movies = pd.read_csv(tmdb_5000_movies)

    print(df_tmdb_5000_movies.head(3))

     

    2 缺失值处理 缺失记录仅________条,采取网上搜索,补全信息。

    2.1 补全 release_date

     print(df_tmdb_5000_movies[df_tmdb_5000_movies['release_date']!=df_tmdb_5000_movies['release_date']])#输出指定列为控制的行

    #利用任何两个控制都不相等

     

    缺失记录的电影标题为《America Is Still the Place》,日期为__ 2014-06-01__。

    2.2 补全 runtime

        print(df_tmdb_5000_movies[df_tmdb_5000_movies['runtime']!=df_tmdb_5000_movies['runtime']])#输出指定列为控制的行

     

    缺失记录的电影 runtime 分别为_______min 和 _______min。

    Chiamatemi Francesco - Il Papa della gente  94.0

    To Be Frank, Sinatra at 100 81.0

    3 重复值处理

    print(df_tmdb_5000_movies['id'].drop_duplicates())

     

    运行结果:有___4803__个不重复的 id,可以认为没有重复数据。

    4 日期值处理

    将 release_date 列转换为日期类型:

        #df_tmdb_5000_movies['release_date'] = df_tmdb_5000_movies['release_date'].apply(lambda x: time.mktime(time.strptime(x, '%Y-%m-%d')))

    #有比1970年小的年份,无法使用time.mktime转换

    5 筛选数据

    使用数据分析师最喜欢的一个语法:

    评分人数vote_count

    票房revenue、预算budget、受欢迎程度popularity、评分vote_average为___0__的数据应该去除;

    评分人数过低的电影,评分不具有统计意义,筛选评分人数大于__100___的数据。

    此时剩余______条数据,包含______个字段。

    先对平分列进行一个简单的统计:

    print(df_tmdb_5000_movies['vote_average'].describe())z

    在对评论人数进行简单统计

    print(df_tmdb_5000_movies['vote_count'].describe())

     

    取100人小于100的去掉

    print(df_tmdb_5000_movies[df_tmdb_5000_movies['vote_count']>=100].shape)

     

    票房revenue、预算budget、受欢迎程度popularity、评分vote_average为___0__的数据应该去除;

        print(df_tmdb_5000_movies['revenue'].describe())#票房

        print(df_tmdb_5000_movies['budget'].describe())#预算

        print(df_tmdb_5000_movies['popularity'].describe())#受欢迎程度

        print(df_tmdb_5000_movies['vote_average'].describe())#评分的描述

        print(df_tmdb_5000_movies['vote_count'].describe())#评论人数的描述

        df_tmdb_5000_movies_vote=df_tmdb_5000_movies[df_tmdb_5000_movies['vote_count'] >= 100]#评论人数小于100的去掉

        print(df_tmdb_5000_movies_vote.shape)

        df_tmdb_5000_movies_vote_0=df_tmdb_5000_movies_vote[df_tmdb_5000_movies_vote['revenue']>0]

        print(df_tmdb_5000_movies_vote_0.shape)

        df_tmdb_5000_movies_vote_0 = df_tmdb_5000_movies_vote_0[df_tmdb_5000_movies_vote_0['budget'] > 0]

        print(df_tmdb_5000_movies_vote_0.shape)

        df_tmdb_5000_movies_vote_0 = df_tmdb_5000_movies_vote_0[df_tmdb_5000_movies_vote_0['popularity'] > 0]

        print(df_tmdb_5000_movies_vote_0.shape)

        df_tmdb_5000_movies_vote_0 = df_tmdb_5000_movies_vote_0[df_tmdb_5000_movies_vote_0['vote_average'] > 0]

    print(df_tmdb_5000_movies_vote_0.shape)

     

     

     

    最后剩下2715条

    6 json 数据转换 **说明:

    genres,

    keywords,

    production_

    companies,

    production_countries,

    cast,crew

    这 6 列都是 json 数据,需要处理为列表进行分析。 处理方法: json 本身为字符串类型,先转换为字典列表,再将字典列表转换为,以’,'分割的字符串

    Genres

    Keywords

    production_companies

    production_countries

    spoken_languages

    只有这几个是json字符串的格式

    先将字符转换为字典,在取name属性进行拼接。

    def to_str(key,df_tmdb_5000_movies_vote_0):

        str_list=[]

        for i in range(num):

            dictionary=eval(df_tmdb_5000_movies_vote_0[key].iloc[i])#eval将字符串转换为字典

            str=""

            for j in dictionary:

                str=str+j["name"]+","

            str_list.append(str)

    df_tmdb_5000_movies_vote_0[key]=str_list

    pass

     

     

    print(df_tmdb_5000_movies_vote_0[key].head(10))

        to_str('genres', df_tmdb_5000_movies_vote_0)

        to_str('keywords', df_tmdb_5000_movies_vote_0)

        to_str('production_companies', df_tmdb_5000_movies_vote_0)

        to_str('production_countries', df_tmdb_5000_movies_vote_0)

        to_str('spoken_languages', df_tmdb_5000_movies_vote_0)

    print(df_tmdb_5000_movies_vote_0.head(10))

     

     

     

     

    可以看到这几个属性已经变为字符串以逗号分隔了

     

    7 数据备份

    保存为csv一份,数据库一份

    df_tmdb_5000_movies_vote_0.to_csv('clean_df_tmdb_5000_movies.csv')

     

    将csv导入到数据库,利用之前的大作业导入

     

  • 相关阅读:
    rails s 命令不起作用
    ubuntu下virtualbox共享usb
    ubuntu15.04 无法识别exfat格式
    .net core 2.2 修改IdentityUser主键标识类型
    Mac os 安装node.js及环境变量的配置过程
    常见互联网网络名词整理
    assert的用法
    Mac系统中 改变 pip总是默认安装在Mac上自带的python上为python3
    测试工程师的发展之路
    MySQL的mysql-8.0.17-winx64版本安装过程中遇到的问题
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15659497.html
Copyright © 2011-2022 走看看