利用Python实现简单的Excel统计函数
作者:hqx 时间:2021-09-27 09:21:09
需求分析
根据原始数据,计算出累计和、回撤、连续正确、连续错误、连续正确值与连续错误值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的使用还要只有通过大量的练习才能够熟练的掌握
来源:https://blog.csdn.net/m0_69043821/article/details/125417629
标签:Python,Excel,统计,函数
0
投稿
猜你喜欢
Opencv图像处理之详解掩膜mask
2022-08-12 23:40:44
Python文件读写保存操作的示例代码
2022-03-20 01:21:23
python实现kmp算法的实例代码
2022-07-19 15:07:16
用python爬取历史天气数据的方法示例
2022-10-30 21:28:42
详解pygame中Rect对象
2021-01-09 04:37:58
ASP简单实现数字和字母验证码
2008-10-23 13:52:00
fso对象CreateTextFile方法调用时“无效的过程调用或参数”错误
2009-05-26 15:39:00
Python程序暂停的正常处理方法
2023-07-17 23:21:47
解决Jupyter无法导入已安装的 module问题
2022-05-13 07:14:18
在Sublime Editor中配置Python环境的详细教程
2023-08-14 08:33:26
PHP中集成PayPal标准支付的实现方法分享
2023-09-06 09:11:22
python判断、获取一张图片主色调的2个实例
2022-07-26 18:27:00
使用 XSLT 解释 XML 文件
2009-03-08 19:06:00
浅析Python打包时包含静态文件处理方法
2023-05-29 01:12:10
一道python走迷宫算法题
2022-08-11 19:14:25
JAVA正则表达式校验qq号码的方法
2023-08-09 02:54:25
对Python新手编程过程中如何规避一些常见问题的建议
2021-04-01 19:27:16
浅谈Pandas 排序之后索引的问题
2022-03-18 12:28:32
Python内置函数Type()函数一个有趣的用法
2023-01-16 06:30:44
Pandas如何对Categorical类型字段数据统计实战案例
2023-03-01 20:02:26