Python大数据分析挖掘和影评分析

  1. #!/usr/bin/python
  2. #coding:utf-8
  3. import urllib2
  4. import re
  5. #请求目标网址
  6. url = 'file:///data/workspace/movie_review.htm'
  7. #设置请求头
  8. req = urllib2.Request(url, headers={'User-Agent':'Magic Browser'})
  9. #打开这个请求并读取
  10. webpage = urllib2.urlopen(req)
  11. strw = webpage.read()
  12. #因为数据有部分重复,切取了唯一电影的部分,我们只截取左边这部分
  13. s = strw.find('正在上映')
  14. if s == -1:
  15. print 'not find start'
  16. e = strw.find('即将上映')
  17. if e == -1:
  18. print 'not find end'
  19. #获取正在上映和即将上映之间内容
  20. tmp = strw[s: e]
  21. #利用正则提取评分标签,观察评分的html代码得出。
  22. rank = re.findall('<span class='subject-rate'>\d?.*\d?</span>', tmp)
  23. sum = 0.0
  24. #提取评分,累加,并计算平均值
  25. for x in rank:
  26. sum += float(re.findall('\d+.*\d', x)[0].replace(' ', ''))
  27. #计算其平均值
  28. avg = sum / len(rank)
  29. #输出平均值,将平均值写入文件,保留四位小数
  30. print '%.4f'%(avg)
  31. file = open('/data/workspace/score.txt','w')
  32. file.write('%.4f'%(avg))
  1. #coding:utf-8
  2. import pandas as pd
  3. import datetime
  4. #读取原始文件,并给各列添加标记列
  5. df=pd.read_csv('/data/workspace/film_log.csv',delimiter=';',encoding='utf-8',names=[u'电影名称',u'上线时间',u'下线时间',u'公司',u'导演',u'主演',u'类型',u'票房',u'城市'])#
  6. # print df[df.isnull().values] #查看数据空值
  7. ans0301=df[df[u'电影名称']==u'《冲上云霄》'].loc[:,[u'电影名称',u'上线时间',u'下线时间',u'票房',u'城市']] #筛选影片《冲上云霄》数据
  8. ans0301=ans0301.drop_duplicates().reset_index().drop('index',axis=1) #去重清洗
  9. ans0301[u'票房']=ans0301[u'票房'].str.split(u')').str[1].astype(float) #清洗票房列数据。且转为float类型
  10. ans0301[u'上线时间']=pd.to_datetime(ans0301[u'上线时间']) #将时间列转换类时间类型
  11. ans0301[u'下线时间']=pd.to_datetime(ans0301[u'下线时间'])
  12. day=(ans0301[u'下线时间'].max()-ans0301[u'上线时间'].min()).days+1 #上映总天数
  13. # print day
  14. # print ans0301
  15. box=ans0301[u'票房'].sum() #总票房
  16. avg_box=box/day #平均票房
  17. f=open('/data/workspace/box.txt','w')
  18. f.write('%Ld,%0.6f'%(day,avg_box)) #按要求存入box.txt文件
  19. f.close()
  1. #coding:utf-8
  2. import pandas as pd
  3. import datetime
  4. import matplotlib.pyplot as plt
  5. #读取原始文件,按照;切分,设置编码格式utf-8,并给各列添加标记列
  6. df=pd.read_csv('/data/workspace/film_log.csv',delimiter=';',encoding='utf-8',names=[u'电影名称',u'上线时间',u'下线时间',u'公司',u'导演',u'主演',u'类型',u'票房',u'城市'])
  7. # print df[df.isnull().values]
  8. film=[u'《冲上云霄》',u'《少年班》',u'《紫霞》'] #在列表存放三部影片
  9. dfz=pd.DataFrame(columns=[u'票房'])
  10. zong_box=[]
  11. for k in range(len(film)):
  12. ans0302=df[df[u'电影名称']==film[k]].loc[:,[u'电影名称',u'上线时间',u'下线时间',u'票房',u'城市']] #筛选三部影片数据
  13. ans0302 = ans0302.drop_duplicates().reset_index().drop('index', axis=1) #去重清洗
  14. ans0302[u'票房'] = ans0302[u'票房'].str.split(u')').str[1].astype(float) #清洗票房列数据。且转为float类型
  15. ans0302[u'上线时间'] = pd.to_datetime(ans0302[u'上线时间']) #将时间列转换类时间类型
  16. ans0302[u'下线时间'] = pd.to_datetime(ans0302[u'下线时间'])
  17. day = (ans0302[u'下线时间'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值