日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【数据分析】Python :视频网站数据清洗整理和结论研究

發(fā)布時(shí)間:2025/3/21 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据分析】Python :视频网站数据清洗整理和结论研究 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

視頻網(wǎng)站數(shù)據(jù)清洗整理和結(jié)論研究

要求:
1、數(shù)據(jù)清洗 - 去除空值

  • 要求:創(chuàng)建函數(shù)
  • 提示:fillna方法填充缺失數(shù)據(jù),注意inplace參數(shù)

2、數(shù)據(jù)清洗 - 時(shí)間標(biāo)簽轉(zhuǎn)化

  • 要求:
    ① 將時(shí)間字段改為時(shí)間標(biāo)簽
    ② 創(chuàng)建函數(shù)
  • 提示:
    需要將中文日期轉(zhuǎn)化為非中文日期,例如 2016年5月24日 → 2016.5.24

3、問題1 分析出不同導(dǎo)演電影的好評(píng)率,并篩選出TOP20

  • 要求:
    ① 計(jì)算統(tǒng)計(jì)出不同導(dǎo)演的好評(píng)率,不要求創(chuàng)建函數(shù)
    ② 通過多系列柱狀圖,做圖表可視化
  • 提示:
    ① 好評(píng)率 = 好評(píng)數(shù) / 評(píng)分人數(shù)
    ② 可自己設(shè)定圖表風(fēng)格

4、問題2 統(tǒng)計(jì)分析2001-2016年每年評(píng)影人數(shù)總量

  • 要求:
    ① 計(jì)算統(tǒng)計(jì)出2001-2016年每年評(píng)影人數(shù)總量,不要求創(chuàng)建函數(shù)
    ② 通過面積圖,做圖表可視化,分析每年人數(shù)總量變化規(guī)律
    ③ 驗(yàn)證是否有異常值(極度異常)
    ④ 創(chuàng)建函數(shù)分析出數(shù)據(jù)外限最大最小值)
    ⑤ 篩選查看異常值 → 是否異常值就是每年的熱門電影?
  • 提示:
    ① 通過箱型圖驗(yàn)證異常值情況
    ② 通過quantile(q=0.5)方法,得到四分位數(shù)
    ③ IQR=Q3-Q1
    ④ 外限:最大值區(qū)間Q3+3IQR,最小值區(qū)間Q1-3IQR (IQR=Q3-Q1)
    ⑤ 可自己設(shè)定圖表風(fēng)格

一 導(dǎo)入python包

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

二 數(shù)據(jù)讀取

data = pd.read_csv('C:/Users/Hjx/Desktop/愛奇藝視頻數(shù)據(jù).csv', engine = 'python') print(data.head())

三 數(shù)據(jù)清洗

1 去除空值

文本型字段空值改為“缺失數(shù)據(jù)”,數(shù)字型字段空值改為 0

  • 要求:創(chuàng)建函數(shù)
  • 提示:fillna方法填充缺失數(shù)據(jù),注意inplace參數(shù)
def data_cleaning(df):cols = df.columnsfor col in cols:if df[col].dtype == 'object':df[col].fillna('缺失數(shù)據(jù)', inplace = True)else:df[col].fillna(0, inplace = True)return(df)
  • 該函數(shù)可以將任意數(shù)據(jù)內(nèi)空值替換
data_c1 = data_cleaning(data) print(data_c1.head(10))

2 時(shí)間標(biāo)簽轉(zhuǎn)化

將時(shí)間字段改為時(shí)間標(biāo)簽

  • 要求:創(chuàng)建函數(shù)
  • 提示:需要將中文日期轉(zhuǎn)化為非中文日期,例如 2016年5月24日 → 2016.5.24
def data_time(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)
  • 該函數(shù)將輸入列名的列,改為DatetimeIndex格式
data_c2 = data_time(data_c1,'數(shù)據(jù)獲取日期') print(data_c2.head(10))

四 統(tǒng)計(jì)分析

  • 問題1 分析出不同導(dǎo)演電影的好評(píng)率,并篩選出TOP20
    • 要求:
      ① 計(jì)算統(tǒng)計(jì)出不同導(dǎo)演的好評(píng)率,不要求創(chuàng)建函數(shù)
      ② 通過多系列柱狀圖,做圖表可視化
    • 提示:
      ① 好評(píng)率 = 好評(píng)數(shù) / 評(píng)分人數(shù)
df_q1 = data_c2.groupby('導(dǎo)演')[['好評(píng)數(shù)','評(píng)分人數(shù)']].sum() df_q1['好評(píng)率'] = df_q1['好評(píng)數(shù)'] / df_q1['評(píng)分人數(shù)'] result_q1 = df_q1.sort_values(['好評(píng)率'], ascending=False)[:20]
  • 計(jì)算統(tǒng)計(jì)不同導(dǎo)演的好評(píng)率
result_q1['好評(píng)率'].plot(kind='bar',color = 'k',width = 0.8,alpha = 0.4,rot = 45,grid = True,ylim = [0.98,1],figsize = (12,4),title = '不同導(dǎo)演電影的好評(píng)率')

  • 問題2 統(tǒng)計(jì)分析2001-2016年每年評(píng)影人數(shù)總量
    • 要求:
      ① 計(jì)算統(tǒng)計(jì)出2001-2016年每年評(píng)影人數(shù)總量,不要求創(chuàng)建函數(shù)
      ② 通過面積圖,做圖表可視化,分析每年人數(shù)總量變化規(guī)律
      ③ 驗(yàn)證是否有異常值(極度異常)
      ④ 創(chuàng)建函數(shù)分析出數(shù)據(jù)外限最大最小值)
      ⑤ 篩選查看異常值 → 是否異常值就是每年的熱門電影?
    • 提示:
      ① 通過箱型圖驗(yàn)證異常值情況
      ② 通過quantile(q=0.5)方法,得到四分位數(shù)
      ③ IQR=Q3-Q1
      ④ 外限:最大值區(qū)間Q3+3IQR,最小值區(qū)間Q1-3IQR (IQR=Q3-Q1)
q2data1 = data_c2[['導(dǎo)演','上映年份','整理后劇名']].drop_duplicates() q2data1 = q2data1[q2data1['上映年份'] != 0]
  • 篩選出不同年份的數(shù)據(jù),去除‘上映年份’字段缺失數(shù)據(jù)
q2data2 = data_c2.groupby('整理后劇名').sum()[['評(píng)分人數(shù)','好評(píng)數(shù)']] #print(q2data2)
  • 求出不同劇的評(píng)分人數(shù)、好評(píng)數(shù)總和
q2data3 = pd.merge(q2data1,q2data2,left_on='整理后劇名',right_index=True) #print(q2data3)
  • 合并數(shù)據(jù),得到不同年份,不同劇的評(píng)分人數(shù)、好評(píng)數(shù)總和
q2data4 = q2data3.groupby('上映年份').sum()[['評(píng)分人數(shù)','好評(píng)數(shù)']] print(q2data4.head())
  • 按照電影上映年份統(tǒng)計(jì),評(píng)分人數(shù)量
fig1 = plt.figure(num=1,figsize=(12,4)) q2data4['評(píng)分人數(shù)'].loc[2000:].plot.area(figsize = (10,4),grid = True,color = 'g',alpha = 0.8) plt.xticks(range(2001,2016)) plt.title('2001-2016年每年評(píng)影人數(shù)總量統(tǒng)計(jì)')
  • 創(chuàng)建面積圖
    • 每年影評(píng)人數(shù)通過每個(gè)電影來判斷是否合理?
    • 存在異常值,哪些是異常值?
fig,axes = plt.subplots(4,4,figsize=(10,16)) start = 2001 for i in range(4):for j in range(4):data = q2data3[q2data3['上映年份'] == start]data[['評(píng)分人數(shù)','好評(píng)數(shù)']].boxplot(whis = 3, # IQR為3return_type='dict',ax = axes[i,j]) # 創(chuàng)建矩陣箱型圖start += 1
  • 發(fā)現(xiàn)基本每年的數(shù)據(jù)中都有異常值,且為極度異常

  • 創(chuàng)建函數(shù)得到外限最大最小值
  • 查看異常值
a = q2data3[q2data3['上映年份'] == 2001] def data_error(df,col):q1 = df[col].quantile(q=0.25) # 上四分位數(shù)q3 = df[col].quantile(q=0.75) # 下四分位數(shù)iqr = q3 - q1 # IQRtmax = q3 + 3 * iqr # 外限最大值tmin = q3 - 3 * iqr # 外限最小值return(tmax,tmin)
  • 創(chuàng)建函數(shù),得到外限最大最小值
for i in range(2000,2016):datayear = q2data3[q2data3['上映年份'] == i] # 篩選該年度的數(shù)據(jù)print('%i年有%i條數(shù)據(jù)' % (i,len(datayear))) # 查看每年的數(shù)據(jù)量t = data_error(datayear,'評(píng)分人數(shù)') # 得到外限最大最小值#print(t)print(datayear[datayear['評(píng)分人數(shù)'] > t[0]]) # 查看評(píng)分人數(shù)大于外限最大值的異常值print('-------\n')
  • 查看異常值信息

總結(jié)

以上是生活随笔為你收集整理的【数据分析】Python :视频网站数据清洗整理和结论研究的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。