问题1:电影类型是如何随着时代变化而变化的? 问题2:环球影业和派拉蒙影业的电影之间的数据指标有什么区别? 问题3:和非小说改编的电影相比,基于小说改编的电影表现得怎么样?
In [27]:
import numpy as np
import pandas as pd
filename = './movies.csv'
movies_df = pd.read_csv(filename, encoding='utf-8')
movies_df.describe()
Out[27]:
In [28]:
# 由于一个电影由多个电影公司所制作,所以对电影公司这一列进行拆分。
def split_date(data, column) :
split_genres = data[column].str.split('|', expand=True)
split_genres['id'] = data['id']
merged_back = data.merge(split_genres)
merged_back.drop_duplicates(subset=None, keep='first', inplace=True)
#得到原数据集所有columns
columns = data.columns.values.tolist()
#columns去除要分割的列名
columns.remove(column)
melted = pd.melt(
merged_back, id_vars=columns,
value_vars=[0, 1, 2, 3, 4], value_name=column+'_only'
).drop('variable', axis = 1
).dropna()
return melted
data_split_genres = split_date(movies_df, 'genres')
test_movies = split_date(data_split_genres, 'production_companies')
test_movies.to_excel('test_movies.xlsx', encoding='utf-8', index=False)
# data_split_genres.to_excel('data_split_genres.xlsx', encoding='utf-8', index=False)# 由于一个电影由多个电影公司所制作,所以对电影公司这一列进行拆分。
In [29]:
# 将电影公司进行拆分,仅留下环球影业和派拉蒙影业
movies = pd.read_csv('movies.csv', encoding='utf-8')
s = movies['production_companies'].str.split('|').apply(pd.Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'production'
movies = movies.join(s)
movies = movies[movies['production'].isin(["Universal Pictures", "Paramount Pictures"])]
movies.to_excel('only_companies.xlsx', encoding='utf-8')