在上一篇文章的基础上进行一些特殊的处理,这里的特殊处理主要是涉及到了日期格式数据的处理(上一篇文章大家估计也看到了日期数据的处理是不对的)以及常用的聚合数据统计处理,可以有效的实现你的常用统计要求。代码如下:
#统计员工男女比例
def get_sex_percent():
sexlist=[]
for rows in range(table.nrows-1):
sexlist.append(table.cell(rows+1,2).value)
print(sexlist)
print("the 男女比 is:",round(sexlist.count("男")/sexlist.count("女"),2))
输出结果为:
['男', '女', '男', '男', '男', '男', '男', '女', '女', '男', '男', '女', '男', '男', '男', '女', '男', '女', '男', '男']
the 男女比 is: 2.33
#时间数据类型的处理
def get_date():
for rows in range(table.nrows):
for cols in range(table.ncols):
if(table.cell(rows,cols).ctype==3):
date=xlrd.xldate_as_datetime(table.cell(rows,cols).value,0)
print(date)
#最后一列数据统计处理
def get_statics():
sum=0
list1=[]
for rows in range(table.nrows-1):
sum+=int(table.cell(rows+1,table.ncols-1).value)
list1.append(int(table.cell(rows+1,table.ncols-1).value))
# print(table.cell(rows+1,8).value)
print("the sum is:",sum) #求和
print("the avg is:", round(sum /table.ncols, 2)) #取平均值
print("the max is:",sorted(list1)[-1]) #取最大值
print("the min is:",sorted(list1)[0]) #取最小值
if(len(list1)%2==0): #判断列表长度是奇还是偶,来取中位数
print("the median is:",(list1[int(len(list1)/2)]+list1[int(len(list1)/2+1)])/2)
else:
print("the median is:",list1[int((len(list1)+1)/2)])
if __name__ == '__main__':
get_date()
get_statics()