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

yizhihongxing

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写的Socks5协议代理服务器

    下面是关于“Python写的Socks5协议代理服务器”的完整攻略: 什么是Socks5协议代理服务器? Socks5是一个网络传输协议,它允许在客户端和服务器之间建立连接并进行数据传输。Socks代理服务器是一种特殊的服务器,它可以充当客户端和服务器之间的中介,接收来自客户端的请求并转发到服务器。Socks5协议代理服务器是Socks代理服务器的一种实现方…

    python 2023年5月31日
    00
  • 基于python的socket实现单机五子棋到双人对战

    基于Python的Socket实现单机五子棋到双人对战 概述 本文将讲解如何使用Python的socket模块实现五子棋游戏的网络对战功能。这里我们假设你已经掌握了Python基础知识和五子棋的基本规则,如果不熟悉五子棋游戏可以先行了解。 实现步骤 1. 环境准备 首先你需要一台可以运行Python的计算机和两个网络连接到同一局域网的设备,可以是电脑、手机等…

    python 2023年5月23日
    00
  • Python+OpenCV实现信用卡数字识别的方法详解

    Python+OpenCV实现信用卡数字识别的方法详解 介绍 本文将介绍如何使用Python和OpenCV(Open Source Computer Vision Library)来实现信用卡数字的识别。首先,我们需要从信用卡的照片中提取数字图像,然后使用数字识别模型来识别它们。本文将演示使用轮廓检测和二值化等技术来提取数字图像,以及使用深度学习方法构建数字…

    python 2023年5月18日
    00
  • 从 Python 连接到 Apache Drill

    【问题标题】:Connect to Apache drill from Python从 Python 连接到 Apache Drill 【发布时间】:2023-04-04 00:48:01 【问题描述】: 有谁知道如何从 python 建立到 Apache Drill 的连接? 通常,通过pyodbc库的连接是这样的: connection = pyodbc…

    Python开发 2023年4月8日
    00
  • Python中列表和元组的使用方法和区别详解

    Python中列表和元组的使用方法和区别详解 在Python中,列表和元组都是常用的数据类型,它们都可以用来存储多个元素。本文将详细讲解列表和元组的使用方法和区别。 列表的使用 列表是一种有序的可变序列,可以存储任意类型的元素。列表的定义方式如下: lst = [element, element2, …, elementn] 其中,element1到el…

    python 2023年5月13日
    00
  • Python 生成所有组合

    让我们来讲解Python生成所有组合的使用方法。 生成所有组合 Python中,我们可以使用 itertools库中的 combinations() 函数来生成所有可能性的组合。combinations() 函数接受两个参数,分别是要生成组合的集合和组合元素的长度。以下是具体操作步骤: 导入 itertools 模块 在使用 itertools 库时,首先需…

    python-answer 2023年3月25日
    00
  • 使用Python3编写抓取网页和只抓网页图片的脚本

    下面是使用Python3编写抓取网页和只抓网页图片的脚本的完整攻略: 抓取网页的脚本 前置知识 在开始编写抓取网页的脚本之前,需要先了解一下Python中的以下库: requests:用于发送HTTP请求,即访问网页。 beautifulsoup4:用于解析HTML代码,即从网页中提取所需的内容。 编写步骤 导入requests和beautifulsoup4…

    python 2023年5月14日
    00
  • Python中声明只包含一个元素的元组数据方法

    当我们需要一个只包含一个元素的元组时,例如(1,),需要在元素后面加上逗号来使其成为元组而不是整数。 下面是Python中声明只包含一个元素的元组数据方法的完整攻略: 方法1:使用逗号在元素后面声明 在使用时,只需要在元素后面加上逗号即可声明一个只包含一个元素的元组。如下所示: my_tuple = (1,) print(type(my_tuple)) # …

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