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技术站