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

news2024/11/19 7:44:20

目录

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/1428343.html

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

相关文章

Linux VLAN相关概念、转发原理及处理流程

背景 二、三层转发是网络工程师经常接触到的一个问题,VLAN配置是二、三层转中一个很重要的概念,在配置VLAN的情况下,内核对报文是如何处理的呢? 概念 了解VLAN转发,首先必须知道VLAN相关概念; VLAN作用 V…

闲聊电脑(4)硬盘分区

夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,上次你说的那个“分区”和“格式化”是什么意思? 冰箱:分区么,就是分…

Kotlin快速入门系列10

Kotlin的委托 委托模式是常见的设计模式之一。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。与Java一样,Kotlin也支持委托模式,通过关键字by。 类委托 类的委托即一个类中定义的方…

VPP学习-startup.conf配置文件

背景 VPP(Vector Packet Processing,矢量报文处理),作为一个开源的高性能数据包处理框架,旨在提供可扩展、灵活且高效的网络数据包处理能力;由于传统Linux 内核协议栈整体网络吞吐性能的局限性,…

MySQL | 一定会走索引却没有走的原因,日志报conversion相关错误

TL;DR:函数作用于表字段时,索引会失效。 具体情况 Indexes如下: SQL如下: explain select *from accounting_status_flow_tab_00000000WHERE ( client_no 6848134000 and loan_no 0119324345936016261000 )order by modif…

MySQL 8.0 引入 innodb_flush_method 等新参数的系统调用分析

本文我们将讨论如何在操作系统级别验证 innodb_flush_method 和 innodb_use_fdatasync 修改为默认值之外的其它值(特别是 O_DIRECT 是最常用的)后的效果。 介绍 首先,让我们定义该 innodb_flush_method 参数的作用。它规定了 InnoDB 如何管…

加快“数实融合”推进新型工业化 济南个性化体检“把脉”企业数字化转型难点痛点

加快“数实融合”推进新型工业化 济南个性化体检“把脉”企业数字化转型难点痛点 以主流价值为光,解读“济南故事”,解码C位新闻。爱济南客户端推出“追光”栏目,发挥新型主流媒体权威性和创新性,着眼经济社会发展紧要处、关键处、…

Java学习day26:和线程相关的Object类的方法、等待线程和唤醒线程(知识点详解)

声明:该专栏本人重新过一遍java知识点时候的笔记汇总,主要是每天的知识点题解,算是让自己巩固复习,也希望能给初学的朋友们一点帮助,大佬们不喜勿喷(抱拳了老铁!) 往期回顾 Java学习day25:守护线…

压力测试工具-Jmeter使用总结

目录 一.前言 二.线程组 三.线程组的组件 四.线程组-HTTP请求 1、JSON提取器 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组 2.配置元件 3.构造HTTP请求 4.添加HTTP请求头 5.添加断言 6.添加查看结果树…

Python之Numpy 和 Pandas

目录 2.1 numpy import numpy as np array np.array([[1,2,3],[2,3,4]]) print(array) print(number of dim:,array.ndim) print(shape:,array.shape) print(size:,array.size)pandas 1,pandas 基本介绍 df2 pd.DataFrame({A:1.,B:pd.Timestamp(20130102),C:pd.Series(1,i…

算法设计与分析实验:最短路径算法

一、网络延迟时间 力扣第743题 本题采用最短路径的思想进行求解 1.1 具体思路 (1)使用邻接表表示有向图:首先,我们可以使用邻接表来表示有向图。邻接表是一种数据结构,用于表示图中顶点的相邻关系。在这个问题中&am…

【C语言进阶篇】assert宏 使用详解

文章目录 一、assert简介 二、assert使用方法和规则 2.1 头文件 2.2 原型 2.3 功能 2.4 示例 2.5 assert的打开与关闭 三、注意事项 3.1 运行效率问题 3.2 assert只适用于调试版本 3.3 资源释放与清理 3.4 过度依赖 四、总结 个人主页: 倔强的石头的…

Datax3.0+DataX-Web部署分布式可视化ETL系统

一、DataX 简介 DataX 是阿里云 DataWorks 数据集成的开源版本,主要就是用于实现数据间的离线同步。DataX 致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源(即不同的数据库&#x…

(2024,SaFaRI,双三上采样和 DFT,空间特征和频率特征)基于扩散模型的图像空间和频率感知恢复方法

Spatial-and-Frequency-aware Restoration method for Images based on Diffusion Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 3. 方法 3.1 修改数据保真度 3.2 …

Python中使用Opencv-python库绘制直线、矩形、圆、文本

Python中使用Opencv-python库绘制直线、矩形、圆、文字 在Python中使用Opencv-python绘制直线、矩形、圆、文本非常简单,分别使用到line、rectangle、circle、putText这几个函数,具体可以参考https://docs.opencv.org/4.9.0/d6/d6e/group__imgproc__dra…

基础小白快速入门c语言----数据类型

数据类型,运算符,表达式 1c语言支持 数据类型 1.基础类型(基本类型) a数值类型 整型:往往有符号和无符号的区分,(signed)有符号 (unsigned)无符号 基础整型&#xff1…

GSM模块的使用及注意事项

1.如何使用? 最近,我准备使用GSM模块(SIM900A)发送英文短信到指定号码,翻阅资料如下: 可见,只要给该模块按照如下步骤发送指令: 就可以使得模块正常工作。(SIM900A&#…

6-1 A. DS二叉树—二叉树构建与遍历(不含框架)

题目描述 给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘#’表示,例如AB#C##D##),建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果。 输入 第…

【Java程序设计】【C00231】基于Springboot的景区寄存管理系统(有论文)

基于Springboot的景区寄存管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的景区行李寄存系统 主要功能如下:用户登录模块、用户信息管理模块、角色信息管理模块、部门信息管理模块、行李寄存柜…

十、Qt三维图表

一、Data Visualization模块概述 Data Visualization的三维显示功能主要有三种三维图形来实现,三各类的父类都是QAbstract3DGraph,从QWindow继承而来。这三类分别是:三维柱状图Q3DBar三维空间散点Q3DScatter三维曲面Q3DSurface 1、相关类的…