【Python】【完整代码】解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录

1.示例: 

1.1 实现代码1:列数为常量

运行结果:

1.2 实现代码2:列数为变量

运行结果:


1.示例: 

开发需求:读取Excel文件,统计第3列到第5列中每列的"False"字段占比,统计第6列中的"Pass"字段占比,并按每列首行元素名打印出统计占比

1.1 实现代码1:列数为常量

        请确保替换`'your_excel_file.xlsx'`为你实际的Excel文件路径。这段代码会按每列首行元素名打印出第3列到第5列中每列的"False"字段占比,以及第6列中"Pass"字段的占比

#!/usr/bin/env python3
# _*_ coding : UTF-8 _*_
# 开发人员 :jly
# 开发时间 :2024/01/31 18:57:54
# 文件名称 :rate.py
# 开发工具 :Visual Studio Codeimport pandas as pd# 读取Excel文件
file_path = 'result.xlsx'  # 替换成你的Excel文件路径
df = pd.read_excel(file_path)# 定义一个函数用于计算占比
def calculate_percentage(column, target_value):return column.value_counts(normalize=True).get(target_value, 0) * 100def str_percentages():false_percentages = df.iloc[:, 2:5].apply(lambda col: calculate_percentage(col, False), axis=0) # 统计第3列到第5列中每列的"False"字段占比Fail_percentage = calculate_percentage(df.iloc[:, 5], 'Fail')  # 统计第6列中"Fail"字段占比return false_percentages, Fail_percentage# 打印结果
def print_rate():print("第3列到第5列中每列的\"False\"字段占比:")for column_name, percentage in zip(df.columns[2:5], str_percentages()[0]):print(f"False Rate Of {column_name}: {percentage:.2f}%")print("\n第6列中\"Fail\"字段占比:")print(f"Fail Rate Of Result: {str_percentages()[1]:.2f}%")if __name__ == '__main__':print_rate()

运行结果:

1.2 实现代码2:列数为变量

#!/usr/bin/env python3
# _*_ coding : UTF-8 _*_
# 开发人员 :jly
# 开发时间 :2024/01/31 18:57:54
# 文件名称 :rate.py
# 开发工具 :Visual Studio Codeimport pandas as pd# 读取Excel文件
file_path = 'result.xlsx'  # 替换成你的Excel文件路径
df = pd.read_excel(file_path)# 定义一个函数用于计算占比
def calculate_percentage(column, target_value):return column.value_counts(normalize=True).get(target_value, 0) * 100def str_percentages(col_R):false_percentages = df.iloc[:, 2:int("{}".format(col_R))].apply(lambda col: calculate_percentage(col, False), axis=0) # 统计第3列到第5列中每列的"False"字段占比Fail_percentage = calculate_percentage(df.iloc[:, int("{}".format(col_R))], 'Fail')  # 统计第6列中"Fail"字段占比return false_percentages, Fail_percentage# 打印结果
def print_rate(col_R):print("第3列到第col_R列中每列的\"False\"字段占比:")for column_name, percentage in zip(df.columns[2:int("{}".format(col_R))], str_percentages(col_R)[0]):print(f"False Rate Of {column_name}: {percentage:.2f}%")print("\n第col_R列中\"Fail\"字段占比:")print(f"Fail Rate Of Result: {str_percentages(col_R)[1]:.2f}%")if __name__ == '__main__':print_rate(5)  #col_R=最后一列数(6)-1

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450544.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第41步_移植ST公司uboot的第2步_修改网络驱动_USB OTG设备树_LCD驱动_以及编译和烧写测试

移植ST公司uboot的第1步,创建配置文件、设备树、修改电源管理和sdmmc节点后,还需要进一部修改,如:网络驱动、USB OTG设备树、LCD驱动,以及编译和烧写测试。 一、在虚拟机中,使用VSCode打开my_uboot工作区 …

日志报错 git -c dif.mnemonicprefix=false -c core.guotepath=false 解决方法

前言: 在进行下面操作前,必须确保,你是否安装了Git。 查看Git 在命令行窗口中输入`git --version`: 如果这个命令成功显示了Git的版本信息,这表明Git已经被安装。 1. 使用Sourcetree SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端…

Spring事件之注解@EventListener讲解

文章目录 1 注解EventListener1.1 示例Demo1.1.1 简单例子1.1.2 解耦1.1.3 Spring事件 1.2 深入EventListener1.2.1 debug调试1.2.2 问题一: Spring是怎么知道要去触发这个方法1.2.3 问题二:ApplicationListenerMethodAdapter1.2.4 问题三:Si…

Python算法题集_矩阵置零

Python算法题集_矩阵置零 题73:矩阵置零1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【三层循环】2) 改进版一【纵横计数器】3) 改进版二【原地算法】 4. 最优算法 本文为Python算法题集之一的代码示例 题73:矩阵置零…

python爬虫5

1.selenium交互 无页面浏览器速度更快 #配置好的自己不用管 from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options Options()chrome_options.add_argument(‐‐headless)chrome_options.add_argument(‐‐disable‐gpu)# path…

vue不同环境配置不同打包命令

这个需求非常普遍,通常情况我们在开发的时候一般会有三个环境:开发环境、测试环境、生产环境,我们一步步来看下。 vue环境变量是什么? 指的是在不同地方(开发环境、测试环境、生产环境),变量就…

C语言经典面试题——翻转单词顺序VS左旋转字符串

目录 1. 翻转单词顺序1.1 题目描述1.2 解法1.3 完整代码 2. 左旋转字符串2.1 题目描述2.1.1 解法一:2.1.2 解法二:2.1.2.1 strcpy2.1.2.2 strcat2.1.2.3 完整代码 2.1.3 解法三: 1. 翻转单词顺序 1.1 题目描述 输入一个英文句子,…

Docker安装RocketMQ 笔记

RocketMQ架构上主要分为四部分: Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色…

【C++】C++入门— 类与对象初步介绍

C入门 1 认识面向对象2 类的引入3 类的定义类的定义方式 4 类的访问限定符及封装访问限定符封装 Thanks♪(・ω・)ノ谢谢阅读!下一篇文章见!!! 1 认识面向对象 C语言是面向过程的,关注…

浅析Redis③:命令处理之数据返回Client(下)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库,其重要性不言而喻,作为普通开发者,我们在日常开发中使用Redis,主要聚焦于Redis的基层数据结构的命令使用,很少会有人对Redis的内部实现机制进行了解&#xff0c…

109.乐理基础-五线谱-五线谱的附点、休止符、连线、延音线

内容参考于:三分钟音乐社 上一个内容:五线谱的拍号、音符与写法-CSDN博客 上一个内容里练习的答案: 附点:写在符头的右方,附点的作用与简谱一样,延长前面音符本身时值的一半(附点)…

242. Valid Anagram(有效的字母异位词)

问题描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 问题分析 此问题与383. Ransom Note(赎金信)类似,只是字符变为了…