美文网首页
Task1 论文数据统计

Task1 论文数据统计

作者: 陈易男 | 来源:发表于2021-01-13 18:42 被阅读0次

统计2019年全年计算机各个方向论文数量

数据预处理

data["categories"].describe()
data describe
通过describe函数可以看出数据的总体情况

判断本数据集中共出现多少次的独立数据集,使用set实现

unique_categories = set([i for l in [x.split(' ') for x in data["categories"]] for i in l])
len(unique_categories)
unique_categories

这里使用的是列表推导式,嵌套了多层循环,最外层的for是外层循环

将时间转换成pandas的时间序列格式Timestamp,使用pd.to_datetime完成,并通过时间筛选出2019以后的paper

data["year"] = pd.to_datetime(data["update_date"]).dt.year #将update_date从例如2019-02-20的str变为datetime格式,并提取处year
del data["update_date"] #删除 update_date特征,其使命已完成
data = data[data["year"] >= 2019] #找出 year 中2019年以后的数据,并将其他数据删除

# data.groupby(['categories','year']) #以 categories 进行排序,如果同一个categories 相同则使用 year 特征进行排序
data.reset_index(drop=True, inplace=True) #重新编号
data #查看结果
result

挑选出计算机领域内的所有文章

#爬取所有的类别
website_url = requests.get('https://arxiv.org/category_taxonomy').text #获取网页的文本数据
soup = BeautifulSoup(website_url,'lxml') #爬取数据,这里使用lxml的解析器,加速
root = soup.find('div',{'id':'category_taxonomy_list'}) #找出 BeautifulSoup 对应的标签入口
tags = root.find_all(["h2","h3","h4","p"], recursive=True) #读取 tags

#初始化 str 和 list 变量
level_1_name = ""
level_2_name = ""
level_2_code = ""
level_1_names = []
level_2_codes = []
level_2_names = []
level_3_codes = []
level_3_names = []
level_3_notes = []

#进行
for t in tags:
    if t.name == "h2":
        level_1_name = t.text    
        level_2_code = t.text
        level_2_name = t.text
    elif t.name == "h3":
        raw = t.text
        level_2_code = re.sub(r"(.*)\((.*)\)",r"\2",raw) #正则表达式:模式字符串:(.*)\((.*)\);被替换字符串"\2";被处理字符串:raw
        level_2_name = re.sub(r"(.*)\((.*)\)",r"\1",raw)
    elif t.name == "h4":
        raw = t.text
        level_3_code = re.sub(r"(.*) \((.*)\)",r"\1",raw)
        level_3_name = re.sub(r"(.*) \((.*)\)",r"\2",raw)
    elif t.name == "p":
        notes = t.text
        level_1_names.append(level_1_name)
        level_2_names.append(level_2_name)
        level_2_codes.append(level_2_code)
        level_3_names.append(level_3_name)
        level_3_codes.append(level_3_code)
        level_3_notes.append(notes)

#根据以上信息生成dataframe格式的数据
df_taxonomy = pd.DataFrame({
    'group_name' : level_1_names,
    'archive_name' : level_2_names,
    'archive_id' : level_2_codes,
    'category_name' : level_3_names,
    'categories' : level_3_codes,
    'category_description': level_3_notes
    
})

#按照 "group_name" 进行分组,在组内使用 "archive_name" 进行排序
df_taxonomy.groupby(["group_name","archive_name"])
df_taxonomy
result

数据分析及可视化

_df = data.merge(df_taxonomy, on="categories", how="left").drop_duplicates(["id","group_name"]).groupby("group_name").agg({"id":"count"}).sort_values(by="id",ascending=False).reset_index()

_df

data

使用饼图对结果进行可视化

fig = plt.figure(figsize=(15,12))
explode = (0, 0, 0, 0.2, 0.3, 0.3, 0.2, 0.1) 
plt.pie(_df["id"],  labels=_df["group_name"], autopct='%1.2f%%', startangle=160, explode=explode)
plt.tight_layout()
plt.show()
result
group_name="Computer Science"
cats = data.merge(df_taxonomy, on="categories").query("group_name == @group_name")
cats.groupby(["year","category_name"]).count().reset_index().pivot(index="category_name", columns="year",values="id") 

result

相关文章

  • Task1 论文数据统计

    统计2019年全年计算机各个方向论文数量 数据预处理 通过 函数可以看出数据的总体情况 判断本数据集中共出现多少次...

  • data analysis task3:code statist

    任务主题:论文代码统计,统计所有论文出现代码的相关统计;任务内容:使用正则表达式统计代码连接、页数和图表数据;任务...

  • data analysis task1:Paper statis

    任务说明 任务主题:论文数量统计,即统计2019年全年计算机各个方向论文数量;数据集:https://www.ka...

  • 过为己甚,大仁不仁 | 21-100

    1. 感恩专心论文 今天,稍微改变了一下数据统计的方法,进展就比预期快了许多,原本3天才能统计完的数据,明天就能顺...

  • 深入浅出统计学

    为了帮XX写论文,只好开始自学统计学的相关知识,遂从网上买了数理统计与数据分析和深入浅出统计学来钻研,顺带还附赠了...

  • 智慧海洋-task01

    task1

  • 再读大数据时代

    在写论文的时候,选择了写与大数据统计分析有关的方向,但是在讨论的时候,发现其实自己并不知道什么,大数据的统计分析和...

  • DataWhale MySql Task1_2019-03-31

    DataWhale MySql Task1 1.1 - MySQL 软件安装及数据库基础 软件安装及服务器设置 数...

  • Task5 作者信息关联-知识图谱

    5.1 任务说明 学习主题:作者关联(数据建模任务),对论文作者关系进行建模,统计最常出现的作者关系; 学习内容:...

  • 信息检索

    论文文献 浙江图书馆 行业分析报告,统计数据 艾瑞咨询 quest mobile 问题解答 stackoverfl...

网友评论

      本文标题:Task1 论文数据统计

      本文链接:https://www.haomeiwen.com/subject/fmkpaktx.html