利用Python實現(xiàn)簡單的Excel統(tǒng)計函數(shù)
需求分析
根據(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) #調(diào)用計算數(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('保持成功')
最終結(jié)果
技術(shù)總結(jié)
雖然已經(jīng)完成了要求計算出了所有的數(shù)據(jù),但在寫代碼過程中計算的步驟都是基于python基礎(chǔ)語法實現(xiàn)的,對于pandas的使用還要只有通過大量的練習才能夠熟練的掌握
到此這篇關(guān)于利用Python實現(xiàn)簡單的Excel統(tǒng)計函數(shù)的文章就介紹到這了,更多相關(guān)Python實現(xiàn)Excel統(tǒng)計函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中用format函數(shù)格式化字符串的用法
這篇文章主要介紹了Python中用format函數(shù)格式化字符串的用法,格式化字符串是Python學習當中的基礎(chǔ)知識,本文主要針對Python2.7.x版本,需要的朋友可以參考下2015-04-04Python 找出出現(xiàn)次數(shù)超過數(shù)組長度一半的元素實例
這篇文章主要介紹了Python 找出出現(xiàn)次數(shù)超過數(shù)組長度一半的元素實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python 實現(xiàn)GUI(圖形用戶界面)編程詳解
今天小編就為大家分享一篇python 實現(xiàn)GUI(圖形用戶界面)編程詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)查找兩個字典相同點的方法
這篇文章主要介紹了Python實現(xiàn)查找兩個字典相同點的方法,涉及Python常見集合運算操作技巧,需要的朋友可以參考下2018-02-02scrapy數(shù)據(jù)存儲在mysql數(shù)據(jù)庫的兩種方式(同步和異步)
這篇文章主要介紹了scrapy數(shù)據(jù)存儲在mysql數(shù)據(jù)庫的兩種方式(同步和異步),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02