本次实验的涉及要素较多主要分为以上几个比较重要的要素,主要运用到一下模块:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
import random
from plotly import tools
import plotly.express as px
from plotly.offline import init_notebook_mode, iplot, plot
import plotly.graph_objs as go
import ast
我们先来看看这组数据的主要元素
df_train.head(1).T(由于列数较多有23列,所以我们先用转置将它倒置,以便于我们能够更加清晰地观察这组数据)
df_train.isna().sum()
第一步:数据清洗
1.我们可以很清晰地发现有三个缺失值特别多的地方,分别是(belongs_to_collection,homepage,tagline)而且这三个类型的数据分别属于同一个类型也就是主页,我们在后期可以将之归为一类处理
2.我们发现数据中有很多数据都是json数据,我们是不是应该将之转化为我们更好处理的数据类型以便后续的操作呢
3.剩下的数据nan进行依实际情况进行填补与删除就可以
先处理三个分类的数据,代码如下:(将nan转化为0,如有内容则变为1),并将之合并,category中为1的是有belongs_to_collection,homepage,tagline其中一种类型,为3的则是所有类型都有。
df_train["belongs_to_collection"] = df_train["belongs_to_collection"].isna().apply(lambda x : 0 if x else 1 )
df_train["homepage"] = df_train["homepage"].isna().apply(lambda x : 0 if x else 1)
df_train["tagline"] = df_train["tagline"].isna().apply(lambda x: 0 if x else 1)
df_test["belongs_to_collection"] = df_train["belongs_to_collection"].isna().apply(lambda x : 0 if x else 1 )
df_test["homepage"] = df_train["homepage"].isna().apply(lambda x : 0 if x else 1)
df_test["tagline"] = df_train["tagline"].isna().apply(lambda x: 0 if x else 1)
#将他们合并为一行以便于后面统计
df_train[["belongs_to_collection","homepage","tagline"]].head(20)
df_train["