知乎爬虫与数据分析(二)pandas+pyecharts数据可视化分析篇(上)

您所在的位置:网站首页 知乎热榜小组件下载 知乎爬虫与数据分析(二)pandas+pyecharts数据可视化分析篇(上)

知乎爬虫与数据分析(二)pandas+pyecharts数据可视化分析篇(上)

2024-07-15 13:30| 来源: 网络整理| 查看: 265

注:代码完整版可移步Github——https://github.com/florakl/zhihu_spider。

知乎爬虫与数据分析(一)数据爬取篇 知乎爬虫与数据分析(三)pandas+pyecharts数据可视化分析篇(下)

目录 2 数据处理与可视化分析2.1 热门问题的回答日期分布统计——“在问题提出后多久去发表回答更容易火起来?”2.2 赞数与粉丝数的关系——“是不是高赞答主一般都自带粉丝?小透明还有戏吗?”

2 数据处理与可视化分析

这一部分主要用了pandas+pyecharts模块,附上pyecharts的官方文档。

2.1 热门问题的回答日期分布统计——“在问题提出后多久去发表回答更容易火起来?”

(1)准备工作 知乎的回答时间数据使用的是Unix时间戳格式(从1970-1-1起始的秒数),需要通过函数转换为一般的日期格式。

def time_format(numarray): # 时间戳转换为年月日 t = time.localtime(numarray) # f_t = time.strftime("%Y-%m-%d %H:%M:%S", t) f_t = time.strftime("%Y-%m-%d", t) return f_t

此外还有个排序的小函数,后面用了好几次。

def data_sort(x, y): # 将两个数组按x的顺序同时排序 a = np.array(x) b = np.array(y) sorted_indices = np.argsort(a) a1 = a[sorted_indices] b1 = b[sorted_indices] return a1.tolist(), b1.tolist()

(2)代码 读取时间数据——转换格式——补全缺失日期——可视化。

import pandas as pd from datetime import datetime, timedelta from pyecharts import options as opts from pyecharts.charts import Bar, Scatter, Page from util import time_format, data_sort def readdata(filename): # 读取单个问题的所有回答 with open(filename) as f: lines = f.readlines() qids = [] titles = [] ans_times = [] voteups = [] for i in range(0, len(lines), 4): qids.append(lines[i].strip()) titles.append(lines[i + 1].strip()) ans_times.append(list(map(int, lines[i + 2].strip()[:-1].split(',')))) voteups.append(list(map(int, lines[i + 3].strip()[:-1].split(',')))) return qids, titles, ans_times, voteups def data_full(x, y): # 日期缺失值补全 date_list = x[:] datestart = datetime.strptime(x[0], '%Y-%m-%d') dateend = datetime.strptime(x[-1], '%Y-%m-%d') while datestart


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3