您的位置:首页 > 编程语言 > Python开发

Python数据分析小练习

2016-10-27 16:54 435 查看
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import axis

def get_985(jd_tmp,tmp):
jd_985=[]
for i in range(len(jd_tmp)):
if(tmp[i]=='√'):
jd_985.append(jd_tmp[i])
return jd_985

def get_school_dict(school_set,school_value):
dict_school={}
for i in range(0,len(school_set)):
dict_school[unicode(school_set[i])]=school_value
return dict_school

def get_value_list(datalist,dict_211,dict_211_value,dict_985,dict_985_value):
stulist=[]
for i in range(0,len(datalist)):
tmp=0
if(dict_211.get(unicode(datalist[i]))==1):
if(dict_985.get(unicode(datalist[i]))==2):
tmp=dict_985_value
else:
tmp=dict_211_value
else:
tmp=0
stulist.append(tmp)

stulist.reverse()
return stulist

studata=pd.read_excel(r'e:/test/src.xls')
judgedata=pd.read_excel(r'e:/test/judge.xlsx')
jd_211=judgedata[u'院校名称'].tolist()
jd_985=get_985(jd_211,judgedata[985])

dict_985=get_school_dict(jd_985,2)
dict_211=get_school_dict(jd_211,1)

datalist=studata[u'报考院校'].tolist()
stulist=get_value_list(datalist,dict_211,1,dict_985,2)

cnt_211=0
cnt_985=0
cnt=0
for i in range(len(stulist)):
if(stulist[i]==2):
cnt_985+=1
elif(stulist[i]==1):
cnt_211+=1
elif(stulist[i]==0):
cnt+=1

axis([0, 1600, -1, 3])
plt.title("985 school:%d,211 school:%d,others:%d" %(cnt_985,cnt_211,cnt))
plt.plot(range(0,len(stulist)),stulist,color='g',marker='o')
plt.savefig(r'e:/test/school.png')
plt.show()

数据来源是某院校的考研报名统计,985,211院校的名单表格从网上下载一份即可,统计了考生报名双非,211,985的人数分布,绘制成图如下:(0表示双非,1表示211,2表示985)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据分析 excel