Python分析最近大火的网剧《隐秘的角落》

Python分析最近大火的网剧《隐秘的角落》

概述

《隐秘的角落》是近年来备受关注的一部电视剧,它讲述了一个围绕着学生堕胎事件的故事,大火的程度让人不得不去思考这是如何做到的。本文将使用Python分析这部剧,并进行数据可视化展示,帮助我们了解这部剧的受欢迎程度和相关情况。

数据来源

本文的数据来源于微博,我们可以通过爬虫获取相关的数据,为了更好地展示数据的分布情况,我们选择使用百度地图API来展示地理分布情况。

分析步骤

步骤一:获取数据

在这个步骤中,我们需要使用Python的爬虫技术获取数据。具体的代码实现可以参考以下的示例:

import requests
import json

def get_weibo_data(keyword):
    url = 'https://m.weibo.cn/api/container/getIndex?'
    headers = {
        'referer': 'https://m.weibo.cn/search/',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36',
        'x-requested-with': 'XMLHttpRequest'
    }
    params = {
        'type': 'all',
        'queryVal': keyword,
        'featurecode': '20000320',
        'luicode': '20000174',
        'lfid': '106003type=1',
        'title': keyword,
        'containerid': f'100103type=1&q={keyword}',
        'page_type': 'searchall'
    }
    response = requests.get(url=url, headers=headers, params=params)
    if response.status_code == 200:
        data = json.loads(response.text)
        return data
    else:
        print(f'获取{keyword}的数据失败')

步骤二:数据清洗与预处理

在获取到原始数据后,我们需要进行数据清洗和预处理,以便后续的数据分析和可视化展示。具体的代码实现可以参考以下的示例:

import pandas as pd
from datetime import datetime

def clean_weibo_data(keyword):
    data = get_weibo_data(keyword)
    statuses = data['data']['cards'][1]['card_group']
    df = pd.json_normalize(statuses)
    df = df[['text', 'created_at', 'user.screen_name', 'user.description', 'user.followers_count', 'user.gender', 'user.province', 'user.city', 'user.geo_enabled', 'user.verified']]
    df.columns = ['content', 'created_at', 'user_name', 'user_description', 'followers_count', 'gender', 'province', 'city', 'geo_enabled', 'verified']
    df['created_at'] = pd.to_datetime(df['created_at'], format='%a %b %d %H:%M:%S %z %Y')
    df['date'] = df['created_at'].apply(lambda x: x.date())
    df['time'] = df['created_at'].apply(lambda x: x.time())
    df['hour'] = df['created_at'].apply(lambda x: x.hour)
    df.loc[df['province']=='', 'province'] = None
    df.loc[df['city']=='', 'city'] = None
    return df

步骤三:数据分析

在这一步骤中,我们将对清洗和预处理后的数据进行分析。具体的代码实现可以参考以下示例:

分析受欢迎程度

import matplotlib.pyplot as plt

def analyse_popularity(df):
    verified = df['verified'].value_counts()
    plt.figure(figsize=(6,4), dpi=120)
    plt.bar(verified.index, verified.values)
    plt.title('Verified User')
    plt.xlabel('Verified')
    plt.ylabel('Counts')
    plt.show()

分析地理分布

import urllib
from pyecharts.charts import Map
from pyecharts import options as opts

def analyse_location(df):
    location = df[['province', 'city', 'geo_enabled']]
    location = location.drop_duplicates()
    location = location[location['geo_enabled']==True]
    location = location.groupby(['province', 'city']).count().reset_index()
    location['full_location'] = location['province'] + location['city']
    location['location'] = location['full_location'].apply(lambda x: urllib.parse.quote(x))

    map_data = []
    for index, row in location.iterrows():
        province, city, count, _, location = row.values
        map_data.append((location, count))

    map_chart = Map()
    map_chart.set_global_opts(
        title_opts=opts.TitleOpts(title='Location Distribution'),
        visualmap_opts=opts.VisualMapOpts(max_=1000),
    )
    map_chart.add('网友人数', map_data)
    map_chart.render_notebook()

结论

通过以上的步骤,我们可以对《隐秘的角落》这部剧进行Python分析,并进行数据可视化展示。在最终的分析结果中,我们发现这部剧的受欢迎程度非常高,有很多明星在微博上为其打call,同时分布范围也非常广泛,在全国各地都有很多网友在讨论。

本文仅是Python分析的入门级别,如有不足之处,还请大家指正和补充。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python分析最近大火的网剧《隐秘的角落》 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python自动化办公之清理重复文件详解

    Python自动化办公之清理重复文件详解 背景 在日常生活和办公中,随着电脑使用的频繁,文件的数量也会不断地增加,会出现大量的重复文件,这不仅占用磁盘空间,而且也浪费了我们的时间。因此,如何快速地找到重复文件并进行删除,成为了我们需要考虑的事情。 本文将详细介绍如何使用Python自动化处理重复文件。 方案 1. 计算文件的hash值 我们可以通过计算文件的…

    python 2023年6月3日
    00
  • python批量翻译excel表格中的英文

    下面是“Python批量翻译Excel表格中的英文”的完整实例教程。 1. 准备工作 在使用 Python 批量翻译 Excel 表格的过程中,需要先完成以下准备工作。 1.1 安装必要的库 首先需要安装必要的库,包括 pandas 和 googletrans。pandas 是 Python 中用于数据处理的库,googletrans 是用于谷歌翻译的 Py…

    python 2023年5月14日
    00
  • Python3.9.0 a1安装pygame出错解决全过程(小结)

    Python3.9.0a1安装pygame出错解决全过程(小结) 在安装pygame时,有时会遇到Python3.9.0a1版本下的安装错误。本文将详细讲解如何解决这个问题。 解决方法 方法一:使用pip安装 在Python3.9.0a1版本下,我们可以使用pip装pygame。以下是使用pip安装pygame的步骤: 打开命提示符。 输入以下命令并运行: …

    python 2023年5月13日
    00
  • Python中re.findall()用法详解

    下面是详细的攻略: Python中re.findall()用法详解 在Python中,我们可以使用re.findall()函数来搜索字符串中所有匹配正则表达式的字符串,并返回一个列表。本文将介绍re.findall()函数的用法,并提供两个示例说明。 re.findall()函数的语法 re.findall()函数的语法如下: re.findall(patt…

    python 2023年5月14日
    00
  • python Polars库的使用简介

    Python Polars库使用简介 什么是Polars库 Polars是一个开源的基于Rust编写的Python数据操作库。Polars库旨在使数据操作更快、更可靠和更易于使用。它的灵感来自于Pandas,并使用了类似于Numpy和Pandas的数据模型。 安装Polars库 要安装Polars库,可以使用pip命令,如下所示: pip install p…

    python 2023年6月3日
    00
  • python+mongodb数据抓取详细介绍

    下面是详细的攻略: Python+MongoDB数据抓取详细介绍 在Python中,我们可以使用pymongo模块实现与MongoDB数据库的交互,从而实现数据的抓取和存储。本文将对Python+MongoDB数据抓取进行详细介绍,并提供两个示例说明。 连接MongoDB数据库 在使用pymongo模块进行数据抓取之前,我们需要先连接MongoDB数据库。下…

    python 2023年5月14日
    00
  • Scrapy基于selenium结合爬取淘宝的实例讲解

    Scrapy基于selenium结合爬取淘宝的实例讲解 本实例主要介绍如何使用Scrapy和Selenium结合爬取淘宝网站的商品信息。Scrapy是一个用于爬取网站并从中提取数据的Python框架,而Selenium是一个Selenium WebDriver的Python封装,用以浏览器自动化。 实现步骤 创建Scrapy项目 首先,我们需要在命令行终端中…

    python 2023年5月14日
    00
  • pip报错“TypeError: ‘NoneType’ object is not subscriptable”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “TypeError: ‘NoneType’ object is not subscriptable” 错误。这个错误通常是由于 pip 安装包时出现问题导致的。以下是详细讲解 pip 报错 “TypeError: ‘NoneType’ object is not subscriptable” 的原因与解…

    python 2023年5月4日
    00
合作推广
合作推广
分享本页
返回顶部