zoukankan      html  css  js  c++  java
  • 观影数据集1

    数据清洗

    导入数据

    # 数据导入

    import numpy as np

    import pandas as pd

    from pandas import DataFrame, Series

     

    # 可视化显示在界面

    #%matplotlib inline

    import matplotlib

    import matplotlib.pyplot as plt

     

    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来显示中文

    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

     

    import seaborn as sns

     

    sns.set(color_codes=True)

    import json

    import warnings

     

    warnings.filterwarnings('ignore')

    from wordcloud import WordCloud, STOPWORDS

     

    movies = pd.read_csv('F:\\java 王建民\\2021下\\大作业\\观影数据集之大数据分析\\data\\tmdb_5000_movies.csv', encoding='utf_8')

    credits = pd.read_csv('F:\\java 王建民\\2021下\\大作业\\观影数据集之大数据分析\\data\\tmdb_5000_credits.csv', encoding='utf_8')

    movies.info()  # 查看信息

    credits.info()

     

    # 两个数据框都有title列,以及movies.riginal_title

    # 以上三个数据列重复,删除两个

    del credits['title']

    del movies['original_title']

     

    # 连接两个csv文件

    merged = pd.merge(movies, credits, left_on='id', right_on='movie_id', how='left')

     

    # 删除不需要分析的列

    df=merged.drop(['homepage','overview','spoken_languages','status','tagline','movie_id'],axis=1)

    df.info()

     

    2缺失值处理

     

    缺失记录仅3    条,采取网上搜索,补全信息。

    2.1 补全 release_date

    from test_3.t1 import df

    # 查找缺失值记录-release_date

    release = df[df.release_date.isnull()]

    print(release.title)

    # 查找缺失值记录-runtime

    runtime = df[df.runtime.isnull()]

    print(runtime.title)

     

    缺失发布日期的电影为:America Is Still the Place》日期为2014-06-01

    缺失时长的两部电影为:Chiamatemi Francesco - Il Papa della gente》

    To Be Frank, Sinatra at 100》

    2.2 补全 runtime

    #补全数据

    df['release_date'] = df['release_date'].fillna('2014-06-01')

    df.loc[2656] = df.loc[2656].fillna('94, limit=1')

    df.loc[4140] = df.loc[4140].fillna('240, limit=1')

    df.info()

     

    缺失记录的电影 runtime 分别为  98    min    81    min。

     

    3重复值处理

     

    print(len(df.id.unique()))

     

     

     

     

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

     

    4日期值处理

     

    release_date 列转换为日期类型:

    #将 release_date 列转换为日期类型

    df['release_year'] = pd.to_datetime_new(df.release_date, format = '%Y-%m-%d',errors='coerce').dt.year

    df['release_month'] = pd.to_datetime_new(df.release_date).apply(lambda x: x.month)

    df['release_day'] = pd.to_datetime_new(df.release_date).apply(lambda x: x.day)

    df.info()

    print(df['release_year'],df['release_month'],df['release_day'])

     

  • 相关阅读:
    lxml.etree 教程5:Using XPath to find text
    .Net程序员学习Linux最简单的方法
    海南航空宁波到重庆的"变态"机票
    《帮我买单》帮我买单的故事
    VS 2005 Beta2 Team版正在下载中
    安家博客园
    标记:Oracle里面的过程两种参数的不同
    今天搞VS 2005搞了半天没真正搞出个什么名堂来
    Oracle中INSTR方法
    今天可算把VS 2005 Beta2安装上了,赶紧体会体会
  • 原文地址:https://www.cnblogs.com/wrljzb/p/15657957.html
Copyright © 2011-2022 走看看