题目:
4 统计关于《上海堡垒》话题的舆情走势,已知其上映时间为2019-08-09。(本题可以使用你擅长的编程语言和框架)
解析:由题目可知,数据是包含上海堡垒和烈火英雄的,但题目要求只统计有关上海堡垒的,所以要从数据中将所有有关上海堡垒的提取出来,这时我们可以使用一种提取我们所需要内容的代码:如下:
bool = df["x"].str.contains("y")
filter_data = df[bool]
代码的意思是:提取x中包含y的内容,生成新的代码,我们也可以将它重新放入一个文件中,通过如下读取的方式:filter_data.to_csv("new4")
error_bad_lines:布尔值,默认为True # 默认情况下,具有太多字段的行(例如,带有太多逗号的csv行)将引发异常, # 并且不会返回任何DataFrame。如果为False,则这些“坏行”将从返回的DataFrame中删除。
4.1 讨论热度的计算,按照日期对数据集中每日总评论数计算,按照日期排序(请提供完整代码和结果截图3分)
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame
df = pd.read_csv("new5",error_bad_lines=False)
s = df[["发布时间","评论数"]].sort_values(by="发布时间")
x = s["发布时间"].value_counts()
s1 = (s["发布时间"]=="2019-08-09").sum()
print("2019-08-09",s1)
s2 = (s["发布时间"]=="2019-08-10").sum()
print("2019-08-10",s2)
s3 = (s["发布时间"]=="2019-08-11").sum()
print("2019-08-11",s3)
s4 = (s["发布时间"]=="2019-08-12").sum()
print("2019-08-12",s4)
s5 = (s["发布时间"]=="2019-08-13").sum()
print("2019-08-13",s5)
s6 = (s["发布时间"]=="2019-08-15").sum()
print("2019-08-15",s6)
s7 = (s["发布时间"]>"2019-8-15").sum()
print("2019-昨天",s7)
结果截图如下:
4.2 传播影响的计算,计算出转发次数最多的前5条文章,并列出该文章博主的粉丝数(请提供完整代码和结果截图3分)
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame
df = pd.read_csv("new3.csv",error_bad_lines=False)
# 这两行代码是只获取含有上海堡垒的博客内容,通过这种方式可以获取我们想要的任何部分内容
bool = df["博客内容"].str.contains("上海堡垒")
filter_data = df[bool]
filter_data = filter_data.loc[filter_data["发布时间"]>='2019-08-09']
s = filter_data[["id","转发数","粉丝数"]].sort_values(by="转发数",ascending=False).head()
print(s)
结果截图如下: