程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python-實現簡單的Excel統計函數

編輯:Python

目錄

大家好 我是政胤  

需求分析

解決步驟

最終結果

技術總結



大家好 我是政胤  

今天教大家利用Python-實現簡單的Excel統計函數

制作不易 點個免費的關注 支持一下博主吧

需求分析

根據原始數據,計算出累計和、回撤、連續正確、連續錯誤、連續正確值與連續錯誤值6項數據,其中原始數據大於等於0認定為正確,原始數據小於0為錯誤。明白了要求,那我們就開始撸代碼吧~

解決步驟

import pandas as pd
#創建一個計算數據的函數
def calculate(df):
  pass
#讀取原始數據,將索引列去除
df = pd.read_excel('需求0621.xlsx',index_col=0)
#調用計算數據的函數
calculate(df)

先把整體思路寫好,再去想辦法計算每項數據

#計算累計和
    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
#計算連續正確的個數
    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['連續正確'] = lst3
#計算連續錯誤的個數
    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['連續錯誤'] = lst4
#計算連續正確值
    lst5 = []
    for i in range(df.shape[0]):
        lst5.append('')
    right = 0
    for i in range(df.shape[0]):
        if df['連續正確'][i] != 0:
            right += df['N'][i]
        elif df['連續正確'][i] == 0 and right != 0:
            lst5[i-1] = right
            right = 0
    df['連續正確值'] = lst5
#計算連續錯誤值
    lst6 = []
    for i in range(df.shape[0]):
        lst6.append('')
    wrong = 0
    for i in range(df.shape[0]):
        if df['連續錯誤'][i] != 0:
            wrong += df['N'][i]
        elif df['連續錯誤'][i] == 0 and wrong != 0:
            lst6[i-1] = wrong
            wrong = 0
    df['連續錯誤值'] = lst6

最後將dataframe保存到excel

    df.to_excel('完成計算.xlsx')
    print('保持成功')

最終結果

技術總結

雖然已經完成了要求計算出了所有的數據,但在寫代碼過程中計算的步驟都是基於python基礎語法實現的,對於pandas的使用還要只有通過大量的練習才能夠熟練的掌握

我是政胤 期待你的關注


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved