数据来源:https://www.kaggle.com/Cornell-University/arxiv
目的:统计2019年全年,计算机各个方向论文数量
以下基于jupyter环境实现
1.导入数据
数据介绍:
导入数据
# 导⼊所需的package
import seaborn as sns #⽤于画图
from bs4 import BeautifulSoup #⽤于爬取arxiv的数据
import re #⽤于正则表达式,匹配字符串的模式
import requests #⽤于⽹络连接,发送⽹络请求,使⽤域名获取对应信息
import json #读取数据,我们的数据为json格式的
import pandas as pd #数据处理,数据分析
import matplotlib.pyplot as plt #画图⼯具
# 读⼊数据
data = [] #初始化
file_path = r"C:\Users\monster\Desktop\Data King\archive\arxiv-metadata-oai-snapshot.json"
#使⽤with语句优势:1.⾃动关闭⽂件句柄;2.⾃动显示(处理)⽂件读取数据异常
with open(file_path, 'r') as f:
for line in f:
data.append(json.loads(line))
data = pd.DataFrame(data) #将list变为dataframe格式,⽅便使⽤pandas进⾏分析
data.shape #显示数据⼤⼩
输出:(1796911, 14)
接近180w行数据,每行14列。再来看看数据具体形式
data.head(10) #显示前10行数据
2.数据预处理
1.一般来说,爬虫等手段拿到数据时需要数据表检查(比如数据格式,有无空值等),数据清洗(填充或去除空值)等操作然后再进行数据预处理。但本文数据来自数据集,完整。
2.数据预处理是为目的做铺垫,本此目的:统计2019年全年,计算机各个方向论文数量。故需要对论文种类,年份,筛选计算机方向统计三个方面进行处理
a.论文种类
字段解释:
count:⼀列数据的元素个数;
unique:⼀列数据中元素的种类;
top:⼀列数据中出现频率最⾼的元素;
freq:⼀列数据中出现频率最⾼的元素的个数;
再来看看独立的类型数据集
#推导嵌套循环式
#unique_categories = set([i for l in [x.split(' ') for x in data["categories"]] for i in l])
list = []
temp = [x.split(' ') for x in data["categories"