解析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 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

运行结果:

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 05:50:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 05:50:01       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 05:50:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 05:50:01       20 阅读

热门阅读

  1. Android 8.1 设置--声音中增加通话音量

    2024-02-03 05:50:01       30 阅读
  2. 计算机网络(第六版)复习提纲15

    2024-02-03 05:50:01       26 阅读
  3. ++i(前置自增)和 i++(后置自增)的区别

    2024-02-03 05:50:01       25 阅读
  4. 【前端插件工具】

    2024-02-03 05:50:01       31 阅读
  5. Vue.js 中父组件调用子组件的方法

    2024-02-03 05:50:01       35 阅读
  6. pip安装tf-gpu=2.4的bug解决方案

    2024-02-03 05:50:01       36 阅读
  7. wpf 消息传递

    2024-02-03 05:50:01       29 阅读
  8. Ubuntu 22.04 配置qtchooser默认启用 Qt6

    2024-02-03 05:50:01       32 阅读