资源简介
TMDB电影数据分析,包括Kaggle上的原始数据集,以及代码,实现电影类型和票房,利润等的关系,对比两个公司的电影类型收入,拍摄集中年份,画出饼图,条形图,折线图,并进行关键词的提取,做出词云图。
代码片段和文件信息
import pandas as pd
import numpy as np
import json
#可视化包
import matplotlib.pyplot as plt
import matplotlib
#加载词云图
from wordcloud import WordCloud
#更改字体
plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘]
#读取演员列表信息和电影列表信息数据
credits = pd.read_csv(‘tmdb_5000_credits.csv‘encoding=‘utf-8‘)
movies = pd.read_csv(‘tmdb_5000_movies.csv‘encoding=‘utf-8‘)
json_cols = [‘cast‘‘crew‘]
#json
#编码:把python对象编码转换json字符串 json.dumps
#解码:把json字符串转换成python对象 json.loads
for i in json_cols:
credits[i] = credits[i].apply(json.loads)
#用json方法汇总所有类型
def get_name(x):
return ‘‘.join([i[‘name‘] for i in x])
# cast 提取演员
credits[‘cast‘] = credits[‘cast‘].apply(get_name)
# crew 提取导演
def director(x):
for i in x:
if i[‘job‘] ==‘Director‘:
return i[‘name‘]
credits[‘crew‘] = credits[‘crew‘].apply(director)
# print(credits.head())
#将‘crew‘转换为’directo‘
credits.rename(columns = {‘crew‘:‘director‘}inplace=True)
# print(credits.head())
#movies 解析
json_colss = [‘genres‘‘keywords‘‘spoken_languages‘‘production_countries‘‘production_companies‘]
for i in json_colss:
movies[i]=movies[i].apply(json.loads)
def get_names(x):
return ‘‘.join([i[‘name‘] for i in x])
movies[‘genres‘]=movies[‘genres‘].apply(get_names)
movies[‘keywords‘]=movies[‘keywords‘].apply(get_names)
movies[‘spoken_languages‘]=movies[‘spoken_languages‘].apply(get_names)
movies[‘production_countries‘]=movies[‘production_countries‘].apply(get_names)
movies[‘production_companies‘]=movies[‘production_companies‘].apply(get_names)
# print((credits[‘title‘]==movies[‘title‘]).describe())
del movies[‘title‘]
#合并两张表
df = credits.merge(right=movieshow=‘inner‘left_on=‘movie_id‘right_on=‘id‘)
# print(df.head())
del df[‘id‘]
del df[‘homepage‘]
del df[‘original_title‘]
del df[‘tagline‘]
df[‘release_date‘]=df[‘release_date‘].fillna(‘2014-06-01‘)#填充缺失值
df[‘runtime‘]=df[‘runtime‘].fillna(df.runtime.mean())#填充平均值
df[df[[‘release_date‘‘runtime‘]].isnull().values==True]
#获取电影类型
df[‘genres‘][1].split(‘‘)
genre = set()#建立一个集合,会去重
for i in df[‘genres‘].str.split(‘‘):
genre = set().union(igenre)
genre = list(genre)
genre.remove(‘‘)
# print (genre)
#转化日期格式
df[‘release_year‘] = pd.to_datetime(df.release_date format= ‘%Y-%m-%d‘).dt.year
df[‘release_month‘] = pd.to_datetime(df.release_date format=‘%Y-%m-%d‘).dt.month
#判断每部电影属于什么类型,返回1
for genr in genre:
df[genr] = df[‘genres‘].str.contains(genr).apply(lambda x:1 if x else 0)
#str.contains 字符串包含
df_gy = df.loc[:genre]
# print(df_gy)
#建立包含电影类型和年份的数据框
# print(df_gy.index)
df_gy.index = df[‘release_year‘]
# print(df_gy.head())
# df_gy.groupby(‘release_year‘).count().Adventure.plot(figsize=(126))
# plt.xticks(range(191520185))
# plt.title(‘电影数量的年度趋势图‘ fontsize = 20)
# plt.xlabel(‘年份‘fontsize = 20)
# plt.ylabel(‘数量‘fontsize = 20)
# plt.show()
df_gy1 = df_gy.sort_index(ascending= False)#sort_index 索引排序,默认升序False 为降序。
# pri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8010 2018-12-20 10:58 kaggle电影分析\test.py
文件 40044293 2017-09-28 09:09 kaggle电影分析\tmdb_5000_credits.csv
文件 5698602 2017-09-28 09:09 kaggle电影分析\tmdb_5000_movies.csv
目录 0 2018-12-20 11:02 kaggle电影分析
----------- --------- ---------- ----- ----
45750905 4
相关资源
- ecommerce-data.zip
- movielens100K数据集
- AVPro Movie Capture3.6.8
- hipmovie.rar
- MovieLens电影评分数据
- each movie数据集
- kaggle肺癌检测第一名解决方案和代码
- Kaggle入门——猫狗大战
- MovieRecommend.zip
- kaggle-Fruit Recognition10-Banana.zip
- Easy Movie Texture 2.36.unitypackage
- UnityAsset-EasyMovieTextureVideoTexturev3.20[A
- TMDB电影数据分析
- 2017年kaggle百万肺癌竞赛第一名的代码
-
AVPla
yerMPMoviePla yerControllerMPMoviePl - eachmovie数据集
- movielens数据集
- Easy Movie Texture Video Texture3.7.1
- 大数据项目源代码电影推荐系统Movi
- Airbnb 新用户的民宿预定预测-数据集
- Movie review sentiment analysis
- EasyMovieTexture v3.63
- kaggle 文本情感分析数据集
- kaggle 泰坦尼克titanic数据
- moivelens data 一万部电影的贴图
- Porto_Seguro’s_Safe_Driver_Prediction.zip
- Airbnb New User Bookings 数据集
- GroupLens_MovieLens数据集完整版含三个数
- R语言——kaggle比赛Titanic代码汇总
- Movie Review.rar
评论
共有 条评论