分类统计+频数分布 python
help
import xlrd
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# 设定行名称,第1行为字段名称
data = pd.read_excel("D:/01研/03研二/20220321help/历史 图情 经济 哲学三类文献原文及引文数据 1997-2016/历史 图情 经济 哲学三类文献原文及引文数据/Information science and Library Science/原文/ISLS.xlsx")
#data.head()
# 作者数量计算
data['Author Full Names'] = data['Author Full Names'].fillna("nan")
# Number of authors
data.loc[:,'Number_of_authors'] = data['Author Full Names'].apply(lambda x: len(x.split(";")))
data.info()
# 分类变量的数量查询
# 不同类型下论文数量
data['Document_Type_new'].value_counts()
# 不同类型下未被引论文的数量
data[data["Times Cited, All Databases"]==0]['Document_Type_new'].value_counts()
# 不同类型下被引论文的数量
data[data["Times Cited, All Databases"]!=0]['Document_Type_new'].value_counts()
# 每年数据分布情况
data["Publication Year"].value_counts()
# 未被引文献年度分布情况
data[data["Times Cited, All Databases"]==0]["Publication Year"].value_counts()
抽出零被引文献,抽出零被引文献中的三类文献
# 零被引文献,完全匹配
# 三类文献
data0 = data[data["Times Cited, All Databases"]==0]
#data0
data0_sanlei = (data0[data0["Document_Type_new"]=="Article"].append(data0[data0["Document_Type_new"]=="Proceedings Paper"])).append(data0[data0["Document_Type_new"]=="Review"])
data0_sanlei["Publication Year"].value_counts()
抽出三类文献
# 三类文献
data_sanlei = (data[data["Document_Type_new"]=="Article"].append(data[data["Document_Type_new"]=="Proceedings Paper"])).append(data[data["Document_Type_new"]=="Review"])
# 三类文献时间分布
data_sanlei["Publication Year"].value_counts()
# 三类文献中零被引年度分布
data_sanlei[data["Times Cited, All Databases"]==0]["Publication Year"].value_counts()
# 三类文献中语言分布
data_sanlei["Language"].value_counts()
# 三类文献中零被引语言分布
data_sanlei[data["Times Cited, All Databases"]==0]["Language"].value_counts()
# 三类文献长度分布
# 只需要一列的数据
data_sanlei_pages = data_sanlei["Number of Pages"]
data_sanlei_pages
# 最大值
data_sanlei_pages.max()
# 最小值
data_sanlei_pages.min()
len(data_sanlei_pages)
# 制作频数分布表
a = pd.cut(data_sanlei_pages,[0,5,10,15,20,25,30,35,40,10000], labels=[u"(0,5]",u"(5,10]",u"(10,15]",u"(15,20]",u"(20,25]",u"(25,30]",u"(30,35]",u"(35,40]",u"(40,10000]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b
# 三类零被引文献长度分布
# 只需要一列的数据
data0_sanlei_pages = data0_sanlei["Number of Pages"]
data0_sanlei_pages
# 制作频数分布表
a = pd.cut(data0_sanlei_pages,[0,5,10,15,20,25,30,35,40,10000], labels=[u"(0,5]",u"(5,10]",u"(10,15]",u"(15,20]",u"(20,25]",u"(25,30]",u"(30,35]",u"(35,40]",u"(40,10000]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b
# 三类文献
# 只需要一列的数据
data_sanlei_authors = data_sanlei["Number_of_authors"]
data_sanlei_authors
# 制作频数分布表
a = pd.cut(data_sanlei_authors,[0,1,2,3,4,5,6,7,8,10000], labels=[u"(0,1]",u"(1,2]",u"(2,3]",u"(3,4]",u"(4,5]",u"(5,6]",u"7",u"8",u"(,10000]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b
# 三类零被引文献长度分布
# 只需要一列的数据
data0_sanlei_authors = data0_sanlei["Number_of_authors"]
data0_sanlei_authors
# 制作频数分布表
a = pd.cut(data0_sanlei_authors,[0,1,2,3,4,5,6,7,8,10000], labels=[u"(0,1]",u"(1,2]",u"(2,3]",u"(3,4]",u"(4,5]",u"(5,6]",u"7",u"8",u"(,10000]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b
# 三类文献
# 只需要一列的数据
data_sanlei_references = data_sanlei["Cited Reference Count"]
data_sanlei_references
# 三类文献长度分布
# 只需要一列的数据
data_sanlei_references = data_sanlei["Cited Reference Count"]
data_sanlei_references
# 制作频数分布表
a = pd.cut(data_sanlei_references
,[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,10000]
,labels=[u"(0,5]",u"(5,10]",u"(10,15]",u"(15,20]",u"(20,25]",u"(25,30]",u"(30,35]",u"(35,40]",u"(40,45]",u"(45,50]",u"(50,55]",u"(55,60]",u"(60,65]",u"(65,70]",u"(70,]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b
# 三类零被引文献长度分布
# 只需要一列的数据
data0_sanlei_references = data0_sanlei["Cited Reference Count"]
data0_sanlei_references
# 制作频数分布表
a = pd.cut(data0_sanlei_references
,[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,10000]
,labels=[u"(0,5]",u"(5,10]",u"(10,15]",u"(15,20]",u"(20,25]",u"(25,30]",u"(30,35]",u"(35,40]",u"(40,45]",u"(45,50]",u"(50,55]",u"(55,60]",u"(60,65]",u"(65,70]",u"(70,]"])
# 计算频数
# 按照升序排序
b = a.value_counts().sort_index()
b