溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2022-07-22 09:50:46 來源:億速云 閱讀:103 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下怎么利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

需求分析

怎么利用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ò)誤。明白了要求,那我們就開始擼代碼吧~

解決步驟

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)

先把整體思路寫好,再去想辦法計(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é)果

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

以上就是“怎么利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI