import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import re
import nltk
import json
import matplotlib.image as mpimg
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
数据获取方式,www.kaggle.com
tmdb_credits = pd.read_csv('tmdb_5000_credits.csv')
tmdb_moives = pd.read_csv('tmdb_5000_movies.csv')
total_movies = pd.concat([tmdb_credits.drop(['title'],axis=1),tmdb_moives],axis=1)
print('两原始数据集合并后有{}个样本,{}个特征!'.format(total_movies.shape[0],total_movies.shape[1]))
两原始数据集合并后有4803个样本,23个特征!
#剔除掉用不上的特征,包括电影ID,电影主页,标语,剧情简介!
movies = total_movies.drop(['movie_id','homepage','id','overview',
'tagline','crew','status','original_title'],axis=1)
#对特征值为json格式的数据转换
movies[['cast','genres','production_countries','production_companies','spoken_languages','keywords']] = \
movies[['cast','genres','production_countries','production_companies','spoken_languages','keywords']].applymap(json.loads)
#检查数据中缺失值,以及缺失值的处理
na_feature = movies.isnull().sum(axis=0)[movies.isnull().sum(axis=0) != 0]
print('哪些属性中有缺失值,以及相应缺失数量:\n',na_feature)
#缺失数据不多,可以相应网上找到这些缺失数据的相关信息
print('上映时间有缺失值的电影名为:',movies[movies['release_date'].isnull()]['title'].values[0])
movies['release_date