python——课程第六周

使用jupyter notebook对爬到的数据进行分析,画图

以下是画图工具,第二个是国产的,自己电脑上下载了

Apache ECharts

简介 - pyecharts - A Python Echarts Plotting Library built with love.


中国大学排名

from pyecharts.charts import Map
#地图
from pyecharts.charts import Bar
from pyecharts.charts import Pie
#饼图
from pyecharts import options as opts
#################################################

import pandas as pd 
df = pd.read_csv('中国大学综合排名2021.csv',encoding='gb2312')
#连接数据文件,这是在同一文件夹下
df.head()   
#################################################

df.dtypes
#数据类型
df.describe
df.shape
#数据量
#缺少补为0的代码,比如本数据中一些不存在的数据补0方便统计
g=df.groupby('省市')
df_counts=g.count()['排名']
df0=df_counts.copy()
df0.sort_values(ascending=False,inplace=True)
#ascending的false说明是下降排序的
df0
df_means0 = g.mean()['总分']
#mean表示平均
df_means = df_means0.round(2)
#round(2)表示留两位小数点后数据
df_means
############################################################

df1=pd.concat([df_counts,df_means],join='outer',axis=1)
#按省市把数据组在一起
df1.columns=['数量','平均分']
#列命名
df1
df1.sort_values(by=['平均分'],ascending=False,inplace=True)   #以平均分列的数字排序
d1=df1.index.tolist()
d2=df1['数量'].values.tolist()
d3=df1['平均分'].values.tolist()
#tolist把数据做出list类型,方便后面
b0=Bar()
b0.add_xaxis(d1)
b0.add_yaxis('数量',d2)
b0.add_yaxis('平均分数',d3)
b0.set_global_opts(    #这部分作为修饰表
        title_opts=opts.TitleOpts(title='中国大学排名'),
        yaxis_opts=opts.AxisOpts(name='省份'),
        xaxis_opts=opts.AxisOpts(name='量'),
    )
b0.render_notebook()
#表示在notebook中展示

############################################################




bar1=(
Bar()
.add_xaxis(d1)
.add_yaxis('数量',d2)
.add_yaxis('平均分数',d3)
.reversal_axis()     
.set_series_opts(label_opts=opts.LabelOpts(position='right'))
#这句用来把表改成横向
.set_global_opts(
        title_opts=opts.TitleOpts(title='中国大学排名'),
        yaxis_opts=opts.AxisOpts(name='省份'),
        xaxis_opts=opts.AxisOpts(name='量'),
    )
)
bar1.render_notebook()
a=[1,2,3]
b=[2,3,4]
c=[4,5,6]
for n in zip (a,b):
    print(n)
#把两个向量组合起来
# 各省市大学数量玫瑰图
name = df_counts.index.tolist()
count = df_counts.values.tolist()
c0 = (
    Pie()
    .add(
        '',
        [list(z) for z in zip(name, count)],
        radius=['20%', '60%'],
        center=['50%', '65%'],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c}'))
)
c0.render_notebook()
#地图分布
name = df0.index.tolist()
count = df0.values.tolist()
m = (
        Map()
        .add('', [list(z) for z in zip(name, count)], 'china')
        .set_global_opts(
            title_opts=opts.TitleOpts(title='中国大学排名'),
            visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),
        )
    )
m.render_notebook()

 


第二个上海餐厅

数据导包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.rcParams['font.sans-serif'] = ['SimHei']  #设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False #正常显示负号

pd.set_option('display.float_format',lambda x : '%.2f' % x)#pandas禁用科学计数法
#忽略警告
import warnings
warnings.filterwarnings('ignore')

from pyecharts.charts import Bar,Grid,Scatter,Pie,Geo
from pyecharts import options as opts
data=pd.read_csv("./上海餐饮数据.csv")
data.head(10)
data.shape

data=data.iloc[:,:-2]
data.shape

data.isnull().sum()
df=data.dropna()
df.shape

df.drop(df[(df==0).T.any()].index,inplace=True)
df=df.reset_index(drop=True)
df.shape

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值