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

运行结果:

相关推荐
人工智能训练1 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1681 小时前
python性能优化方案研究
python·性能优化
兩尛2 小时前
c++知识点2
开发语言·c++
fengfuyao9852 小时前
海浪PM谱及波形的Matlab仿真实现
开发语言·matlab
xiaoye-duck2 小时前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
码云数智-大飞2 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
Hx_Ma163 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
biuyyyxxx4 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
期待のcode4 小时前
原子操作类LongAdder
java·开发语言
极客数模4 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab