2019-08-22项目2

#%%
'''
【项目04】  视频网站数据清洗整理和结论研究
'''

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt

data = pd.read_csv(r'C:\Users\heart\Documents\Tencent Files\592409588\FileRecv\【非常重要】项目资料\考核项目02_视频网站数据清洗整理和结论研究\爱奇艺视频数据.csv',engine='python')
data

#indx = data.columns
#dic = {}
#for i in indx:
#    dic[i] = data[i].dtype
#    print(data[i].dtype)

def data_clear(data):
    
    for col in data.columns:
        
        if data[col].dtype == 'object':
            data[col].fillna('缺失数据',inplace=True)
        else:
            data[col].fillna(0,inplace=True)
    return data
df = data_clear(data)  
df.head()     

#%%
'''
2、数据清洗 - 时间标签转化
要求:
① 将时间字段改为时间标签
② 创建函数
提示:
需要将中文日期转化为非中文日期,例如 2016年5月24日 → 2016.5.24
'''

def df_col(df,*cols):
    
    for col in cols:
        df[col] = df[col].str.replace('年','.')
        df[col] = df[col].str.replace('月','.')
        df[col] = df[col].str.replace('日','')
        df[col] = pd.to_datetime(df[col])
    return df
df_c = df_col(df,'数据获取日期')
df_c.head(2)
#%%
'''
3、问题1 分析出不同导演电影的好评率,并筛选出TOP20
要求:
① 计算统计出不同导演的好评率,不要求创建函数
② 通过多系列柱状图,做图表可视化
提示:
① 好评率 = 好评数 / 评分人数
② 可自己设定图表风格
'''

df_d = df_c.groupby('导演')[['好评数','评分人数']].sum()
#df_d.head(10)
df_d['好评率'] = df_d['好评数'] / df_d['评分人数']
df_director = df_d.sort_values('好评率',ascending=False)[:20]
df_director['好评率'].plot(kind='bar',
                 color='r',
                 ylim=[0.93,1],
                 rot=20,
                 grid=True,
                 width=0.9,
                 alpha=0.6)
#%%
'''
4、问题2 统计分析2001-2016年每年评影人数总量
要求:
① 计算统计出2001-2016年每年评影人数总量,不要求创建函数
② 通过面积图,做图表可视化,分析每年人数总量变化规律
③ 验证是否有异常值(极度异常)
④ 创建函数分析出数据外限最大最小值)
⑤ 筛选查看异常值 → 是否异常值就是每年的热门电影?
提示:
① 通过箱型图验证异常值情况
② 通过quantile(q=0.5)方法,得到四分位数
③ IQR=Q3-Q1
④ 外限:最大值区间Q3+3IQR,最小值区间Q1-3IQR (IQR=Q3-Q1)
⑤ 可自己设定图表风格
'''

#人、时间、剧的去重及删除无效值
df_year = df_c[['导演','整理后剧名','上映年份']].drop_duplicates()
df_year = df_year[df_year['导演']!='缺失数据']
df_year = df_year[df_year['上映年份']!=0]
df_year

#剧的人数求和
df_sum = df_c.groupby('整理后剧名').sum()[['好评数','评分人数']]
df_sum.head()

#连接 按整理后剧名
df_result = pd.merge(df_year,df_sum,left_on = '整理后剧名',right_index=True)
df_result.head()

df_result1 = df_result.groupby('上映年份').sum()[['好评数','评分人数']]
df_result1.head()

#按照上映年份统计评分人数 
fig = plt.figure(num=1,figsize=(12,4))
df_result1['评分人数'].loc[2000.:].plot.area(figsize=(12,4),grid=True,alpha=0.8)
plt.xticks(range(2001,2016))

fig,axes = plt.subplots(4,4,figsize=(10,16))
start = 2001.
for i in range(4):
    for j in range(4):
        data = df_result[df_result['上映年份']==start]
        data[['评分人数','好评数']].boxplot(whis=3,return_type='dict',ax=axes[i,j])
        start+=1        
#%%
'''提示:
① 通过箱型图验证异常值情况
② 通过quantile(q=0.5)方法,得到四分位数
③ IQR=Q3-Q1
④ 外限:最大值区间Q3+3IQR,最小值区间Q1-3IQR (IQR=Q3-Q1)
⑤ 可自己设定图表风格
'''
#查看异常值
a = df_result[df_result['上映年份'] == 2001.]
a
def f(df,col):
    
    q1 = df[col].quantile(.25)
    q3 = df[col].quantile(.75)
    
    iqr = q3-q1
    tmax = q3+3*iqr
    tmin = q1-3*iqr
    
    return tmax,tmin

t = f(df_result[df_result['上映年份'] == 2001.],'评分人数')

#布尔值判断筛选出极大的异常值
a[a['评分人数'] > t[0]]

for i in range(2001,2016):
    
    datayy = df_result[df_result['上映年份'] == i]
    print('%i年有%i条数据'%(i,len(datayy)))
    
    t = f(datayy,'评分人数')
    print('其中爆款影视剧如下 :\n%s' % (datayy[datayy['评分人数'] > t[0]]),'\n')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,198评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,334评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,643评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,495评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,502评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,156评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,743评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,659评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,200评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,282评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,424评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,107评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,789评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,264评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,798评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,435评论 2 359

推荐阅读更多精彩内容