使用PyEcharts简单分析csv文件数据

使用pyecharts之前我们要获取首先我们获取网站数据,并且将获取的数据在csv文件中进行必要的转码,如utf-8,gbk23等编码,并且将一些空白的项剔除,删除干扰值

#-*-coding:utf8-*-
#1.发送请求,用python代码模拟浏览器发送请求

#2.获取数据,获取服务器返回的response响应数据
#3.解析数据,提取我们想要的数据内容
#4.保存数据,保存到csv表格中
#5.多页爬取
#记得把下面的注释回去,不然我发布不了博客
#import requests
#import parsel
#import csv
#import pandas as pd

f=open("票房.csv",mode="a",encoding="utf-8",newline="")
csv_writer=csv.DictWriter(f,fieldnames=[
    "排名",
    "电影名",
    "年份",
    "类型"
])
#写入表头
csv_writer.writeheader()
#发送请求

url="http://www.piaofang.biz/"
#请求头 伪装python代码

headers={
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.42"

}

response=requests.get(url=url,headers=headers)
#因为爬取页面编码格式为GB2312所以需要将得来的请求转换成gb2312
response.encoding="gb2312"
#获取的响应体对象
#获取响应体的文本数据
#2.获取数据,获取服务器返回的response响应数据

#3.解析数据re正则表达式 css选择器 xpath解析方法
#直接对字符串数据进行提取的话,只能用re正则表达式
#需要把获取下来的html字符串数据内容转换一下
selector=parsel.Selector(response.text)

#css选择器 根据标签属性内容 提取数据
#分成两次提取数据 第一次提取 提取所有标签 第二次在提取我们想要的数据
#tr为根节点
lis=selector.css("tr")
for td in lis:
    num=td.css("td.num::text ").get()
    title = td.css("td.title a::text").get()
    year=td.css("td.year::text").get()
    type=td.css("td.type::text").get()
    dit={
        "排名":num,
        "电影名":title,
        "年份":year,
        "类型":type
    }
    csv_writer.writerow(dit)
    if title!=None:
        print(num," ",title," ",year," ",type)

csv文件如下,务必记得进行转码否则csv文件中看到的是乱码

 

 接着再开始使用这个得到的csv文件用pyEcharts库进行简易的数据分析

from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts import options as opts

from pyecharts.globals import  ThemeType
import pandas as pd
import numpy as np
bar=Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))

#读入文件
file=pd.read_csv("票房.csv",encoding="utf-8")
#取出表头为年份的数据
year = file["年份"].values
#取出表头为类型的数据
types=file["类型"].values
# print(year)
# print(types)
#新建列表存放年份
new_year=[]
#把nan去除

for elem in year:
    if not np.isnan(elem):
        new_year.append(elem)
        #把列表里面的浮点数年份转换成整型年份
        new_year=list(map(int,new_year))

#取出所有的表头
title=file.columns.values

#得到不同年份
key=set(new_year)
# print(list(key))
#根据key中每一个年份进行遍历
num=[]
for year in key:
    num.append(new_year.count(int(year)))

#得到不同的类型
types=list(types)
type=set(types)
dict={}
for i in types:
    if types.count(i)>1:
        dict[i]=types.count(i)
#删除字典中的nan
dict={k: v for k,v in dict.items() if k==k}
print(dict)
#键值对分别组成列表
keys=dict.keys()
values=dict.values()
keys=list(keys)
values=list(values)
print(keys)
print(values)

bar.add_xaxis(key)
bar.add_yaxis("个数",num)
bar.set_global_opts(title_opts=opts.TitleOpts(title="电影年份分布",subtitle="1982-2022年"))

bar.render()
#
pie=Pie()
pie.add("",[list(z) for z in zip(keys,values)])
pie.set_global_opts(title_opts=opts.TitleOpts(title="类型"))
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
pie.render(path="pie.html")

打开生成的html文件

 

 

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本项目主要使用了学校、省份、水平层次、办学类别、985、211、双一流、专业名称、国家特色专业等数据,通过pandas相关模块对数据进行抽取、清洗和分组统计计算,再而用pyecharts数据可视化模块绘制交互式可视化图表,分析得出各省大学数量分布、本科,专科占比、各办学类别占比、985,211,双一流学校分布、开设数量前二十的专业以及国家特色专业分布等数据结果,旨在结合这些数据分析中国目前高校(大学)办学状况、中国开设数量排名前20的热门专业和国家特色专业主要分布在哪些学校等关于高校办学的信息,为报志愿的高考生和想了解这方面信息的人提供参考。 本项目分析了中国高校和专业的相关数据,旨在结合这些数据分析中国目前高校(大学)办学状况、中国开设数量排名前20的热门专业和国家特色专业主要分布在哪些学校等关于高校办学的信息,为报志愿的高考生和想了解这方面信息的人提供信息和参考。 从上面的可视化结果可以看出中国目前高校(大学)的办学状况,包括高校在各个省份的分布、本科和专科占比情况、各个办学类别占比情况、985,211,双一流分布情况,中国开设数量排名前20的热门专业和国家特色专业学校分布等关于高校办学的信息,为报志愿的高考生和想了解这方面信息的人提供信息和参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值