利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)
需求分析

根據(jù)原始數(shù)據(jù),計(jì)算出累計(jì)和、回撤、連續(xù)正確、連續(xù)錯(cuò)誤、連續(xù)正確值與連續(xù)錯(cuò)誤值6項(xiàng)數(shù)據(jù),其中原始數(shù)據(jù)大于等于0認(rèn)定為正確,原始數(shù)據(jù)小于0為錯(cuò)誤。明白了要求,那我們就開(kāi)始擼代碼吧~
解決步驟
import pandas as pd
#創(chuàng)建一個(gè)計(jì)算數(shù)據(jù)的函數(shù)
def calculate(df):
pass
#讀取原始數(shù)據(jù),將索引列去除
df = pd.read_excel('需求0621.xlsx',index_col=0)
#調(diào)用計(jì)算數(shù)據(jù)的函數(shù)
calculate(df)先把整體思路寫(xiě)好,再去想辦法計(jì)算每項(xiàng)數(shù)據(jù)
#計(jì)算累計(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['累計(jì)和'] = lst1#計(jì)算回撤
lst2 = []
max = 0
for i in range(df.shape[0]):
if i == 0:
lst2.append(0)
elif df['累計(jì)和'][i] > max:
max = df['累計(jì)和'][i]
lst2.append(0)
elif df['累計(jì)和'][i] < max:
lst2.append(df['累計(jì)和'][i]-max)
elif df['累計(jì)和'][i] == max:
lst2.append(0)
df['回撤'] = lst2#計(jì)算連續(xù)正確的個(gè)數(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#計(jì)算連續(xù)錯(cuò)誤的個(gè)數(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ù)錯(cuò)誤'] = lst4#計(jì)算連續(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#計(jì)算連續(xù)錯(cuò)誤值
lst6 = []
for i in range(df.shape[0]):
lst6.append('')
wrong = 0
for i in range(df.shape[0]):
if df['連續(xù)錯(cuò)誤'][i] != 0:
wrong += df['N'][i]
elif df['連續(xù)錯(cuò)誤'][i] == 0 and wrong != 0:
lst6[i-1] = wrong
wrong = 0
df['連續(xù)錯(cuò)誤值'] = lst6最后將dataframe保存到excel
df.to_excel('完成計(jì)算.xlsx')
print('保持成功')最終結(jié)果

技術(shù)總結(jié)
雖然已經(jīng)完成了要求計(jì)算出了所有的數(shù)據(jù),但在寫(xiě)代碼過(guò)程中計(jì)算的步驟都是基于python基礎(chǔ)語(yǔ)法實(shí)現(xiàn)的,對(duì)于pandas的使用還要只有通過(guò)大量的練習(xí)才能夠熟練的掌握
到此這篇關(guān)于利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)Excel統(tǒng)計(jì)函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python如何統(tǒng)計(jì)函數(shù)調(diào)用的耗時(shí)
- python統(tǒng)計(jì)函數(shù)被調(diào)用次數(shù)的實(shí)現(xiàn)
- python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用
- python統(tǒng)計(jì)函數(shù)庫(kù)scipy.stats的用法解析
- Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)及numpy統(tǒng)計(jì)函數(shù)
- Python使用統(tǒng)計(jì)函數(shù)繪制簡(jiǎn)單圖形實(shí)例代碼
- Python中統(tǒng)計(jì)函數(shù)運(yùn)行耗時(shí)的方法
- python常見(jiàn)統(tǒng)計(jì)分析處理函數(shù)解讀
相關(guān)文章
python中創(chuàng)建一個(gè)包并引用使用的操作方法
python包在開(kāi)發(fā)中十分常見(jiàn),一般通過(guò)導(dǎo)入包含特定功能的python模塊包進(jìn)行使用。當(dāng)然,也可以自己創(chuàng)建打包模塊,然后發(fā)布,安裝使用,這篇文章主要介紹了python中如何創(chuàng)建一個(gè)包并引用使用,需要的朋友可以參考下2022-08-08
通過(guò)python獲取甲流分布數(shù)據(jù)
近期,多地學(xué)校出現(xiàn)因甲流導(dǎo)致的班級(jí)停課,兒科甲流患者就診量呈數(shù)倍增長(zhǎng),今天我們同樣的操作來(lái)獲取下現(xiàn)在甲流感染的數(shù)據(jù),需要的朋友可以參考下2023-03-03
python密碼錯(cuò)誤三次鎖定(實(shí)例講解)
下面小編就為大家分享一篇python密碼錯(cuò)誤三次鎖定的實(shí)例講解。具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Python常用驗(yàn)證碼標(biāo)注和識(shí)別(需求分析和實(shí)現(xiàn)思路)
通過(guò)本文的介紹,我們了解了Python在常用驗(yàn)證碼標(biāo)注和識(shí)別方面的應(yīng)用,在實(shí)際項(xiàng)目中,我們可以根據(jù)具體需求選擇合適的模型和工具,實(shí)現(xiàn)高效、準(zhǔn)確的驗(yàn)證碼標(biāo)注和識(shí)別,感興趣的朋友跟隨小編一起看看吧2024-03-03
PyTorch?之?強(qiáng)大的?hub?模塊和搭建神經(jīng)網(wǎng)絡(luò)進(jìn)行氣溫預(yù)測(cè)
hub 模塊是調(diào)用別人訓(xùn)練好的網(wǎng)絡(luò)架構(gòu)以及訓(xùn)練好的權(quán)重參數(shù),使得自己的一行代碼就可以解決問(wèn)題,方便大家進(jìn)行調(diào)用,這篇文章主要介紹了PyTorch?之?強(qiáng)大的?hub?模塊和搭建神經(jīng)網(wǎng)絡(luò)進(jìn)行氣溫預(yù)測(cè),需要的朋友可以參考下2023-03-03
Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn)
今天小編就為大家分享一篇Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
python通過(guò)opencv實(shí)現(xiàn)圖片裁剪原理解析
這篇文章主要介紹了python通過(guò)opencv實(shí)現(xiàn)圖片裁剪原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
從0開(kāi)始的Python學(xué)習(xí)016異常
這篇文章主要介紹了Python異常,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
利用Django提供的ModelForm增刪改數(shù)據(jù)的方法
這篇文章主要介紹了利用Django提供的ModelForm增刪改數(shù)據(jù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

