python計算excel平均值和標准差


##############################################
######## python計算excel平均值和標准差 #######
##############################################
''':數據源格式
編號 時間 儀器1 儀器2 儀器3 儀器4 儀器5 儀器6 儀器7 儀器8 儀器9 儀器10 分組 均值 標准差
FKQXK-r-02-01 20200702 100 101 102 103 104 144 106 107 108 201 A組
FKQXK-r-02-02 20200702 100 105 102 103 104 105 106 107 108 202 A組
FKQXK-r-02-03 20200702 100 101 111 151 104 105 117 107 108 203 A組
'''

引入庫

import xlwings as xw
import xlrd
import math
wb = xw.Book('伽瑪數據處理.xls') #這樣的話就不會頻繁打開新的Excel

引用Excel工作表,單元格

引用工作表

sht = wb.sheets[0] #sht = wb.sheets[第一個sheet名]====伽瑪原始記錄

引用單元格

rng = sht.range('a1') #rng = sht['a1'] #rng = sht[0,0] 第一行的第一列即a1,相當於pandas的切片

定義函數

def mean(list): #定義平均值函數
sum=0
j=len(list)
for i in list:
sum = sum+ int(i)
return sum/j

def StdEv(list): #計算標准差函數,參數是列表和平均值
sum = 0.0
n = len(list) #計算列表長度
for i in list:
sum = sum + int(i)
list_aver=sum / n #先計算平均值

sum1 = 0.0
for j in range(n):
    sum1 += (list[j] - list_aver) ** 2   #差的平方
res = math.sqrt(sum1/n)  #求開方后就是標准差
return res
pass

上面定義函數

引用區域

rng = sht.range('c2:l2')

rng = sht['c']

n2=sht['n2']

list= sht.range('c2:l2').value
print(list)
print(mean(list))
sht.range('n2').value = mean(sht.range('c2:l2').value)

rng = sht.range('a2').expand('table')
nrows = rng.rows.count #獲取總行數,不含標題

for i in range(2,nrows+2): #nrows+2是因為總行數不含標題,且最后一個不循環
sht.range('n{}'.format(i)).value = mean(sht.range('c{}:l{}'.format(i,i)).value) #計算均值列
sht.range('o{}'.format(i)).value = StdEv(sht.range('c{}:l{}'.format(i,i)).value) #計算標准差列

保存工作簿

wb.save('伽瑪數據處理_RESULT.xls')

退出工作簿(可省略)

wb.close()
#######end###############


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM