Datawhale数据分析之学术前沿分析学习笔记(三)


一、任务说明

论⽂代码统计,统计所有论⽂出现代码的相关统计。

二、使用步骤

1.引入库

import  json
import re
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

2.读入数据

代码如下(示例):

data = []

with open('arxiv-metadata-oai-snapshot.json','r') as f:
    for idx,line in enumerate(f):
        if idx >= 50000:
            break
        d = json.loads(line)
        d = {'abstract':d['abstract'],'categories':d['categories'],'comments':d['comments']}
        data.append(d)
data = pd.DataFrame(data)

3.数据预处理

运用正则化

data['page'] = data['comments'].apply(lambda x : re.findall('\d+ pages',str(x)))
#print(data.head())

data = data[data['page'].apply(len)>0]
#print(data['page'].head())
#print(data.head())
data['page_num'] = data['page'].apply(lambda x : re.findall('\d+',str(x)))
print(data.head())
data['page_num2'] = data['page_num'].apply(lambda x : float(x[0]))
print(data.head())

# data['page_num'] = data['page'].apply(lambda x: float(x[0].replace(' pages',
# '')))
# print(data['page_num'].head())
print(data['page_num2'].describe().astype(int))

# 选择主要类别的论文
data['categories'] = data['categories'].apply(lambda x : x.split(' ')[0])
data['categories'] = data['categories'].apply(lambda x : x.split('.')[0])
print(data['categories'][0:5])

4.图表展示

4.1 统计各类别论文的平均数

plt.figure(figsize=(12,6))


# 方案一
data_new = data.groupby(['categories'])['page_num2'].mean()
print(data_new.head())
plt.bar(data_new.index,data_new.values)
plt.xticks(rotation=90)
# 方案二
#data.groupby(['categories'])['page_num2'].mean().plot(kind='bar')

#方案三
# data_new = data.groupby(['categories'])['page_num2'].mean().tolist()
# data_new2 = list(data.groupby(['categories'])['page_num2'].mean().index)

# plt.bar(data_new2,data_new)
# plt.xticks(rotation=90)
plt.show()

图表展示如下:
主要类别论文数


总结

1、正则化函数使用
2、lambda函数应用,被称为万能函数
3、matplotlib绘图的熟练应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值