Python如何计算文件表格数据的累计和与累计平均值
实现方案
这里提供两种实现方式,你可以根据自己的需求选择:
方法1:纯Python原生实现(无需安装额外库,适合理解底层逻辑)
假设你的数据存在名为data.csv的文件中,直接运行以下代码即可得到预期输出:
# 初始化累计和、行计数变量 total_marks = 0 row_count = 0 # 读取文件 with open("data.csv", "r", encoding="utf-8") as f: # 处理表头 original_header = f.readline().strip() print(f"{original_header},CUM_SUM,AVG") # 逐行处理数据 for line in f: line = line.strip() if not line: continue name, age, marks = line.split(",") marks = int(marks) # 计算累计和与当前平均值 total_marks += marks row_count += 1 current_avg = total_marks / row_count # 格式化输出,保留两位小数,和示例格式对齐 print(f"{name},{age},{marks},{total_marks},{current_avg:.2f}")
方法2:使用pandas库实现(代码更简洁,适合批量处理表格数据)
首先需要安装pandas库,执行命令:pip install pandas
之后运行以下代码:
import pandas as pd # 读取csv文件 df = pd.read_csv("data.csv") # 计算MARKS列的累计和 df["CUM_SUM"] = df["MARKS"].cumsum() # 计算到当前行的平均值,保留两位小数 df["AVG"] = df["MARKS"].expanding().mean().round(2) # 输出结果,不显示行索引 print(df.to_csv(index=False))
运行以上任意一种方法,输出结果都会和你给出的预期格式一致。
内容的提问来源于stack exchange,提问作者user17086826
相关产品推荐
相关产品推荐

