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

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:列数为变量

python 复制代码
#!/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

运行结果:

相关推荐
不正经学生31 分钟前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技41 分钟前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
恋恋西风3 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx3 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BizzZ_4 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_4 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
richdata4 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
geovindu5 小时前
CSharp: 万年历
开发语言·后端·c#·.net
傲笑风5 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
我找到地球的支点啦5 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信