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中的字符串(String)是不可变类型的对象,用于表示一系列字符序列。字符串是一种非常重要的数据类型,使用广泛。本篇文章将详细介绍Python中字符串的基本使用方法,包括字符串的定义、基本操作、常用方法等。 字符串的定义 字符串是用一对单引号(‘ ‘)或一对双引号(” “)括起来的一串字符,例如: str1 =…

    python 2023年5月13日
    00
  • python中的多cpu并行编程

    针对题目要求,我为您详细讲解一下 Python 中的多 CPU 并行编程的完整攻略。 什么是多 CPU 并行编程 多 CPU 并行编程是指利用多个 CPU 同时进行任务处理,以提高程序的执行效率和速度。在 Python 中,多 CPU 并行编程多利用多进程或多线程实现,具体方式可以根据不同场景选择不同的模块或库。 多进程并行编程示例 以下是一个用 multi…

    python 2023年5月19日
    00
  • 如何在 Python 中使用 Selenium 设置动态显式等待?

    【问题标题】:How can I set a dynamic explicit wait using Selenium in Python?如何在 Python 中使用 Selenium 设置动态显式等待? 【发布时间】:2023-04-05 11:02:01 【问题描述】: 我几天前构建的一个程序在这里遇到了一点问题,所以我将非常简单地解释它: 我正在使用…

    Python开发 2023年4月5日
    00
  • Python实现两个list求交集,并集,差集的方法示例

    Python实现两个list求交集、并集、差集的方法示例 在Python中,可以使用set集合的交集、并集、差集等操作来实现两个list的交集、并集、差集操作。本将详细讲解Python中实现两个list求交集、并集、差集的方法示例,包括使用set集合的方法和使用列表推导式的方法。 使用set集合的方法 求交集 使用set集合的intersection()方法…

    python 2023年5月13日
    00
  • 基于python win32setpixel api 实现计算机图形学相关操作(推荐)

    基于python win32setpixel api 实现计算机图形学相关操作 本教程将介绍如何基于python的win32setpixel api实现计算机图形学相关操作。该API允许开发人员直接操纵像素点,以绘制图形并对其进行操作。我们将探讨如何使用该API在窗口中绘制线条、矩形和圆形。 准备工作 在使用win32setpixel之前,我们需要安装pyw…

    python 2023年5月19日
    00
  • 使用pytorch时所遇到的一些问题总结

    以下是关于使用PyTorch时所遇到的一些问题总结的完整攻略: 问题描述 在使用PyTorch进行深度学习时,可能会遇到一些常见的问题。这些问题可能涉及到PyTorch的安装、模型训练、数据加载等方面。了解这些问题及其解决方法可以帮助我们更好地使用PyTorch进行深度学习。 解决方法 可以使用以下步骤解决使用PyTorch时所遇到的一些问题: 安装PyTo…

    python 2023年5月13日
    00
  • 如何使用Python查询两个或多个表之间的连接?

    以下是如何使用Python查询两个或多个表之间的连接的完整使用攻略。 使用连接查询的前提条件 在使用Python查询两个或多个表之间的连接之前,需要确保经安装并启动了支持连接查询的,例如MySQL或PostgreSQL,并且需要安装Python的相应数据库驱动程序,例如mysql-connector-python或psycopg2。 步骤1:导入模块 在Py…

    python 2023年5月12日
    00
  • python3.6中anaconda安装sklearn踩坑实录

    以下是关于“Python3.6中Anaconda安装sklearn踩坑实录”的完整攻略: 问题描述 在使用 Python3.6 和 Anaconda 进行机器学习开发时,可能会遇到装 sklearn 库时出现的问题。本文将介绍如何解决这些问题。 解决方法 1. 使用 conda 安装 使用 conda 命令在命令行中安装 sklearn 库。示例代码如下: …

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