目錄
需求分析
根據(jù)原始數(shù)據(jù),計算出累計和、回撤、連續(xù)正確、連續(xù)錯誤、連續(xù)正確值與連續(xù)錯誤值6項數(shù)據(jù),其中原始數(shù)據(jù)大于等于0認定為正確,原始數(shù)據(jù)小于0為錯誤。明白了要求,那我們就開始擼代碼吧~
解決步驟
import pandas as pd#創(chuàng)建一個計算數(shù)據(jù)得函數(shù)def calculate(df): pass#讀取原始數(shù)據(jù),將索引列去除df = pd.read_excel('需求0621.xlsx',index_col=0)#調用計算數(shù)據(jù)得函數(shù)calculate(df)
先把整體思路寫好,再去想辦法計算每項數(shù)據(jù)
#計算累計和 lst1 = [] sum = 0 for i in range(df.shape[0]): if i == 0: lst1.append(df['N'][i]) sum += df['N'][i] else: sum += df['N'][i] lst1.append(sum) df['累計和'] = lst1
#計算回撤 lst2 = [] max = 0 for i in range(df.shape[0]): if i == 0: lst2.append(0) elif df['累計和'][i] > max: max = df['累計和'][i] lst2.append(0) elif df['累計和'][i] < max: lst2.append(df['累計和'][i]-max) elif df['累計和'][i] == max: lst2.append(0) df['回撤'] = lst2
#計算連續(xù)正確得個數(shù) lst3 = [] correct = 0 for i in range(df.shape[0]): if df['N'][i] >= 0: correct += 1 lst3.append(correct) else: lst3.append(0) correct = 0 df['連續(xù)正確'] = lst3
#計算連續(xù)錯誤得個數(shù) lst4 = [] mistake = 0 for i in range(df.shape[0]): if df['N'][i] < 0: mistake += 1 lst4.append(mistake) else: lst4.append(0) mistake = 0 df['連續(xù)錯誤'] = lst4
#計算連續(xù)正確值 lst5 = [] for i in range(df.shape[0]): lst5.append('') right = 0 for i in range(df.shape[0]): if df['連續(xù)正確'][i] != 0: right += df['N'][i] elif df['連續(xù)正確'][i] == 0 and right != 0: lst5[i-1] = right right = 0 df['連續(xù)正確值'] = lst5
#計算連續(xù)錯誤值 lst6 = [] for i in range(df.shape[0]): lst6.append('') wrong = 0 for i in range(df.shape[0]): if df['連續(xù)錯誤'][i] != 0: wrong += df['N'][i] elif df['連續(xù)錯誤'][i] == 0 and wrong != 0: lst6[i-1] = wrong wrong = 0 df['連續(xù)錯誤值'] = lst6
最后將dataframe保存到excel
df.to_excel('完成計算.xlsx') print('保持成功')
最終結果
技術總結
雖然已經完成了要求計算出了所有得數(shù)據(jù),但在寫代碼過程中計算得步驟都是基于python基礎語法實現(xiàn)得,對于pandas得使用還要只有通過大量得練習才能夠熟練得掌握
到此這篇關于利用Python實現(xiàn)簡單得Excel統(tǒng)計函數(shù)得內容就介紹到這了,更多相關Python實現(xiàn)Excel統(tǒng)計函數(shù)內容請搜索之家以前得內容或繼續(xù)瀏覽下面得相關內容希望大家以后多多支持之家!
聲明:所有內容來自互聯(lián)網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。