扒一扒网易云课堂python课程,发现还有不少可以白嫖的免费好资源

大家好,最近有不少新朋友咨询怎么学Python,从哪找学习资源等等。

由于我个人也是从网易云课程的免费资源入门的,这里就扒一扒了网易云课程的Python课程资源,做简单的处理分析,让大家对这个平台的免费好资源有个了解,然后白嫖起来就好了。(文末附领取方式)

可以叫我才哥数据爱好者,学习分享数据之美63篇原创内容

Official Account

关于免费课程方面,其实有很多都讲得很详细,新人朋友选择一个比较全面的免费课程学习下去,基本就能对基础有一定的掌握,然后再进行更深入的学习就行了。

目录:

  • 1. python课程数据采集
  • 2. 简单的数据处理
  • 3. 都有哪些不错的课程
    • 3.1. 评分最高的课程
    • 3.2. 学习人数最多的课程
    • 3.3. 数据分析及可视化类的课程
  • 4. 网易云课程Python课程数据统计
    • 4.1. 评分区间分布
    • 4.2. 课程单价区间分布(原价)
    • 4.3. 课程学习人次区间分布
    • 4.4. 课程名称常用关键词
    • 4.4. 课程描述常用关键词
    • 4.5. 各机构课程学习人次及评分

1. python课程数据采集

网易云课堂的课程列表数据爬取比较简单,直接关键字搜索出结果之后在开发者模式找到请求源地址即可,通过接口发现数据起始就是json格式的,处理也比较简单,附完整代码如下:

import pandas as pd
import requests
from tqdm import tqdm

# 请求头
headers = {
    "Accept-Encoding": "Gzip",  # 使用gzip压缩传输数据让访问更快
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
}
# 数据接口地址
url = 'https://study.163.com/p/search/studycourse.json'

# 获取数据函数
def getData(page):
    pageIndex = page
    relativeOffset = (page-1)*50
    Payload = {
        'activityId': 0,
        'keyword': "python", # python关键字,你也可以改为别的
        'orderType': 5,
        'pageIndex': pageIndex,
        'pageSize': 50,
        'priceType': -1,
        'qualityType': 0,
        'relativeOffset': relativeOffset,
        'searchTimeType': -1,
    }

    r = requests.post(url, json=Payload, headers=headers)
    data = r.json()

    return data

# 获取总页数
data = getData(1)
pages = data['result']['query']['totlePageCount']

dataList = []
for page in tqdm(range(1, pages+1)):
    data = getData(page)
    dataList.extend(data['result']['list'])
# 将数据转为dataframe类型
df = pd.DataFrame(dataList)
# 只选取自己需要的字段
df = df[['courseId', 'productName', 'description', 'provider', 'score',
         'learnerCount', 'lessonCount',
         'originalPrice', 'discountPrice', 'discountRate','vipPrice']]
df['平台'] = '网易云课堂'
# 存储数据到本地
df.to_csv('网易云课堂python课程.csv',index=None)

数据预览:

数据预览

2. 简单的数据处理

由于我们在查看原始数据发现存在评分超过5,课程实际为Java或Power bi类的,这里需要进行删除:

# 删除score异常的数据及非python课程
df = df[df['score']<=5]
df = df[~df.productName.str.contains('Java')]
df = df[~df.productName.str.contains('Power')]

另外,我们在后续需要对评分价格以及学习人数进行分箱操作后做数据可视化,这里也直接进行一次分箱操作:

# 设置评分区间
bins = [0,2,3,4,4.5,5]
df['评分区间'] = pd.cut(df.score,bins)
# 计算评分区间分布
score = df.groupby('评分区间')['courseId'].nunique().reset_index()
score.评分区间 = score.评分区间.astype('str')

# 设置原价区间
bins = [0,10,50,100,200,500,1000]
df['原价区间'] = pd.cut(df.originalPrice,bins,right=False)
# 计算原价区间分布
price = df.groupby('原价区间')['courseId'].nunique().reset_index()
price.原价区间 = price.原价区间.astype('str')

# 设置学习人次区间
bins = [0,100,200,500,1000,2000,5000,100000,1000000]
df['学习人次区间'] = pd.cut(df.learnerCount,bins,right=False)
# 计算学习人次区间分布
learner = df.groupby('学习人次区间')['courseId'].nunique().reset_index()
learner.学习人次区间 = learner.学习人次区间.astype('str')

# 计算各培训机构python课程数
provider = df.groupby('provider')['courseId'].nunique().reset_index()

3. 都有哪些不错的课程

由于评分最高的一批课程以及学习人数最多的课程都是免费的,所以这里就直接简单做排序处理就好了。

3.1. 评分最高的课程

评分最高的课程都是满分5分,学习人数超过20万的免费课程《免费Python全系列教程全栈工程师》真的超级推荐,不仅包含了python基础,还包含了GUI库Tkinter、爬虫、Django等内容共128课时。

免费Python全系列教程全栈工程师

评分最高且学习人数最多的前10课程:

score10 = df.sort_values(['score','learnerCount'],ascending=False).head(10)
score10[['productName','provider','score','learnerCount','lessonCount']].reset_index(drop=True)

评分最高且学习人数最多的前10课程

有兴趣的同学可以都看看,根据自己的需求,免费的好资源,白嫖起来!

3.2. 学习人数最多的课程

在学习人数最多的课程中,python基础、python爬虫和python-web开发居多,大家依旧是可以根据自己的需求,有选择的进行学习。

learnerCount10 = df.sort_values(['learnerCount','score'],ascending=False).head(10)
learnerCount10[['productName','provider','score','learnerCount','lessonCount','originalPrice']].reset_index(drop=True)

学习人数最多的课程

绘图展示:

学习人数柱状图

绘图代码:

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

x_data = learnerCount10.productName.to_list()
y_data = learnerCount10.learnerCount.to_list()

bar = (Bar(init_opts=opts.InitOpts(theme="light", width='800px',
                                   height='490px',
                                  ))
       .add_xaxis(x_data)
       .add_yaxis('', y_data)
       .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
        title_opts=opts.TitleOpts(title="网易云课堂Python课程学习人数最高的前10课程", subtitle="绘图:可以叫我才哥"),
        )
      )

bar.render_notebook()

3.3. 数据分析及可视化类的课程

我们通过关键字过滤课程,看看都有哪些关于数据分析、可视化及pandas的免费课程资源

数据分析主题课程

data = df[df['productName'].str.contains('数据分析')]
learnerCount10 = data.sort_values(['learnerCount','score'],ascending=False).head(10)
learnerCount10[['productName','provider','score','learnerCount','lessonCount','originalPrice']].reset_index(drop=True)

数据分析课程

大家就找originalPrice = 0 且 score 高的就可以看看了。

可视化主题课程

data = df[df['productName'].str.contains('可视化')]
learnerCount10 = data.sort_values(['learnerCount','score'],ascending=False).head(10)
learnerCount10[['productName','provider','score','learnerCount','lessonCount','originalPrice']].reset_index(drop=True)

可视化

pandas主题课程

data = df[df['productName'].str.contains('pandas')]
learnerCount10 = data.sort_values(['learnerCount','score'],ascending=False).head(10)
learnerCount10[['productName','provider','score','learnerCount','lessonCount','originalPrice']].reset_index(drop=True)

pandas

4. 网易云课程Python课程数据统计

网易云课堂一共有1,544种python关键字课程,其中有400门是免费课程,占比达到25.91%超过1/4。在网易云课堂发布课程的机构有491家,其中最多的发了59门课程。

4.1. 评分区间分布

可以看到,网易云课程中,超过3/4大部分课程的评分在4-4.5分之间,超高分的4.5以上也有接近20%,整体来说还是可以的。

评分区间

绘图代码

from pyecharts.charts import Pie

# 富文本
rich_text = {
    "a": {"color": "#999", "lineHeight": 22, "align": "center"},
    "b": {"fontSize": 12, "lineHeight": 33},
    "per": {
        "color": "#eee",
        "backgroundColor": "#334455",
        "padding": [2, 4],
        "borderRadius": 2,
    },
}

cate = score.评分区间.to_list()
data = score.courseId.to_list()

pie = (Pie(init_opts=opts.InitOpts(theme='light', width='700px',
                                   height='490px',
                                  ))
       .add('', [list(z) for z in zip(cate, data)],
            radius=180, #设置饼图半径
            label_opts=opts.LabelOpts(position='outsiede',
                                     formatter="{b|{b}: }{c}  {per|{d}%}  ",
                                     rich=rich_text))
       .set_global_opts(legend_opts=opts.LegendOpts(is_show=False),
                       title_opts=opts.TitleOpts(title="网易云课堂python课程评分区间分布",
                                         subtitle='制图:可以叫我才哥'),)
       )
pie.render_notebook()

4.2. 课程单价区间分布(原价)

在1544门课程中,有400门免费课程,1144门付费课程。在付费课程中大部分其实在100元以内,其中10元以内 139门占比12.18%,1000元以上42门占比3.68%。

课程单价区间

4.3. 课程学习人次区间分布

其实,有67.6%的大部分课程学习人次都较少低于100,差不多就是那些知名度低或者价格高的课程吧。另外,还有4门课的学习人次超过了10万次,这部分就是上面提到的python基础免费课程。

学习人次区间分布

4.4. 课程名称常用关键词

对于python课程,大家都喜欢起什么名字呢,以python为核心关键字之外,常见的关键字还有基础、入门、爬虫、开发、编程、实战等等。

我们可以看到,爬虫 作为特殊关键词的存在,一定程度上表明了这类型可能很受python学习者的青睐!

python课程关键字词云

4.4. 课程描述常用关键词

在课程描述中,依旧是以Python为核心关键字,此外课程、数据、开发、学习、基础、讲解、介绍、数据分析和项目等字眼也频繁被用到。

python课程描述常用关键词

4.5. 各机构课程学习人次及评分

 

 

在这里还是要推荐下我自己建的Python学习Q群:705933274,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值