不用Pandas包和用pandas包处理数据集

来源:互联网 发布:gnuradio python模块 编辑:程序博客网 时间:2024/05/24 03:20

总结一些最近为准备面试而准备的一些知识,今天总结一下python不用Pandas包和用pandas包处理数据集

自定义数据集:

Id,名称,数学,英语,语文

1,xiaohong,98,87,23

.........

#coding=utf8import pandas as pdfrom pandas import DataFrame,Series#不使用pandas包处理表格数据dic={}with open("test.csv",'r') as f:lines=f.readlines();line=lines[2:-1]#计算每个人的总分#计算每个人不及格的门数#按总分排名for lin in line: li=lin.split(",")count=sum(int(x) for x in li[1:])su=sum([1 for x in li[1:] if int(x)<60])dic[li[0]]=(count,su)sorted(dic.iteritems(),key=lambda x:x[1][0],reverse=False)#计算每门功课的最高成绩和姓名dc={}lis1={}lis2={}lis3={}for lin in line:li=lin.split(",")lis1[li[0]]=int(li[1])lis2[li[0]]=int(li[2])lis3[li[0]]=int(li[3])dc["math"]=lis1dc["english"]=lis2dc["chinese"]=lis3for dic in dc.iteritems():tmp=dic[1]mx=sorted(tmp.iteritems(),key=lambda x:x[1],reverse=True)print dic[0],mx[0]


#使用pandas包处理表格数据data=pd.read_csv("test.csv")data=data[:len(data)-1]data["sum"]=0#计算每个人的总分,放在最后一列for i in range(0,len(data)):data["sum"][i]=sum(data.ix[i,1:])#按总分排名data=data.sort_index(by="sum")#计算每门功课的最高成绩和姓名for k in data.columns[1:len(data.columns)]:data[data[k]==max(data[k])][["name",k]]#计算每个人不及格的门数for j in range(len(data)):count=0for k in range(len(data.ix[j,])):if(data.ix[j,k]<60):count+=1#print data.ix[j,0]

使用pandas包还是简单一些,而且实现过程所花费的时间也少一些,所以数据处理推荐使用pandas包。

0 0
原创粉丝点击