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

news2024/11/14 23:38:28

目录

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 Code

import 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) * 100

def 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 Code

import 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) * 100

def 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.coloradmin.cn/o/1429786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言——P/文件操作

一、为什么使用文件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久…

数据结构—基础知识:哈夫曼树

文章目录 数据结构—基础知识:哈夫曼树哈夫曼树的基本概念哈夫曼树的构造算法哈夫曼树的构造过程哈夫曼算法的实现算法:构造哈夫曼树 数据结构—基础知识:哈夫曼树 哈夫曼树的基本概念 哈夫曼(Huffman)树又称最优树&…

gtest测试框架

文章目录 前言1 单元测试2 gtest安装3 gtest原理4 断言4.1 明确指定或失败4.2 布尔条件4.3 二元比较4.4 谓词断言4.5 死亡测试5 gtest使用5.1 测试函数5.2 测试类5.3 测试夹具5.4 类型参数化5.5 事件总结前言 GoogleTest(GTest) 是谷歌开源的 C++ 单元测试框架。 1 单元测试…

redis存储对象的过期设置在实际项目中的运用案例展示

redis存储对象的过期设置在实际项目中的运用案例展示!经过前面的学习,我们已经基本上初步掌握了redis数据库存储对象的过期时间是如何设置的了。下面给大家展示一个具体的实际开发项目中用到业务场景。 在项目化生寺小程序游戏开发中,有道具&…

什么是TCP粘包和半包问题?如何解决?

什么是TCP粘包问题?如何解决? TCP粘包和半包是数据传输中比较常见的问题。所谓的粘包问题就是指在数据传输的时候,在一条消息中读取到了另一条消息的部分数据,如下图: 半包是指接收端只收到了部分的数据,而…

【C语言/基础梳理/期末复习】动态内存管理(附思维导图)

目录 一、为什么要有动态内存分配 (1)我们已经掌握的内存方式的特点 (2)需求 二、malloc和free 2.1.malloc 2.1.1函数原型 2.1.2函数使用 2.1.3应用示例​编辑 2.2free 2.2.1函数原型 2.2.2函数使用 三、calloc和reallo…

算法练习-左叶子之和(思路+流程图+代码)

难度参考 难度:中等 分类:二叉树 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记,旨…

rust gui开发框架选择

作为一个系统编程强大语言,怎么能少得了图形界面的开发 实际上写这篇前我也不知道,于是我问了ai大模型,文心3.5和chatgpt4.0 答案实际上不能满意,最后我做了下筛选 参考博文: rust开发环境配置:链接 一、…

Loadbalancer如何优雅分担服务负荷

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Loadbalancer如何优雅分担服务负荷 前言Loadbalancer基础:数字世界的分配大师1. 分发请求:2. 健康检查:3. 会话保持:4. 可伸缩性:5. 负载均衡…

数据结构—基础知识:哈夫曼编码

文章目录 数据结构—基础知识:哈夫曼编码哈夫曼编码的主要思想有关编码的概念哈夫曼编码满足两个性质: 数据结构—基础知识:哈夫曼编码 哈夫曼编码的主要思想 在进行数据压缩时,为了使压缩后的数据文件尽可能短,可采…

二手电脑配置给你不一样的成就感

回顾从小到大使用电脑、组装电脑到开发软硬件的经历,总是对二手电脑有着不一样的情感,近五年买过八台新电脑,一台是图像处理培训买的笔记本,一台是小孩上课的台式机,一台是老人的集成办卡电脑,还有一些工作…

Vue3_基础使用_2

这节主要介绍:标签和组件的ref属性,父子组件间的传递值,ts的接口定义,vue3的生命周期 1.标签的ref属性。 1.1ref属性就是给标签打标识用的,相当于html的id,但是在vue3中用id可能会乱,下面是ref…

跟着cherno手搓游戏引擎【18】抽象Shader、项目小修改

抽象&#xff1a; Shader.h: #pragma once #include <string>namespace YOTO {class Shader {public:virtual~Shader()default;virtual void Bind()const0;virtual void UnBind()const0;static Shader* Create(const std::string& vertexSrc, const std::string&am…

软考高项-机考相关介绍论文写作基础介绍

机考相关 初、中级(信息处理技术员除外)资格:基础知识和应用技术2个科目连考,基础知识科目最短作答时长90分钟,最长作答时长120分钟,2个科目作答总时长240分钟,考试结束前60分钟可交卷离场 历年论文考题

java数据结构与算法刷题-----LeetCode15. 三数之和

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 和LeetCode1.两数之和一样&#xff0c;但是这道题边界条件更多。…

Flutter 各种Demo效果合集

Flutter 各种Demo实现效果&#xff1a; github&#xff1a;GitHub - PangHaHa12138/FlutterDemo: Flutter 各种Demo效果合集 1&#xff1a;2种 仿朋友圈 效果,顶部拉伸 和 不拉伸 2&#xff1a;仿抖音上下滑动视频播放 3&#xff1a;视频直播&#xff08;使用的电视台的m3u…

云计算基础(云计算概述)

目录 一、云计算概述 1.1 云计算的概念 1.1.1 云计算解决的问题 1.1.2 云计算的概念 1.1.3 云计算的组成 1.2 云计算主要特征 1.2.1 按需自助服务 1.2.2 泛在接入 1.2.3 资源池化 1.2.4 快速伸缩性 1.2.5 服务可度量 1.3 云计算服务模式 1.3.1 软件即服务(Softwar…

C#验证字符串是否包含汉字:用正则表达式 vs 用ASCII码 vs 用汉字的 Unicode 编码

目录 一、使用的方法 1.使用正则表达式验证字符串 2.使用正则表达式验证字符 3.用ASCII码判断 4.用汉字的 Unicode 编码范围判断 二、实例 1.源码 2.生成效果 验证一个字符串是否是纯汉字或者包含有汉字的前提&#xff0c;是VS编辑器的默认编码格式设置为&#xff1a;选…

Vite与Webpack打包内存溢出问题优雅处理方式

Vite与Webpack打包内存溢出问题处理 文章目录 Vite与Webpack打包内存溢出问题处理1. Vite1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系统的环境变量 2. Webpack1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系…

Llama2大模型开源,大模型的Android时代来了?

就昨天凌晨,微软和Meta宣布Llama2大模型开源且进一步放开商用,一下朋友圈刷屏。要知道,开源界最强大的模型就是过去Meta开源的Llama,而现在Llama2更强大,又开放商用,更有微软大模型霸主企业撑腰(微软既投资大模型界的IOS——ChatGPT,又联合发布大模型的Android——Llam…