You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取CSV文件参数传入自定义函数计算施加的作用力

解决方法

你当前代码的核心问题有两个:

  1. 从CSV读取存入字典的所有数值都是字符串类型,直接传入计算函数会触发类型错误
  2. 数据是按列存储的结构,需要按索引遍历每一行的对应参数调用函数

你可以在现有代码之后添加以下代码完成批量计算:

# 新增列存储计算结果
data['AppliedForce'] = []

# 遍历每一行数据的索引
for i in range(len(data['Mass'])):
    # 读取对应参数并转换为浮点型
    mass = float(data['Mass'][i])
    acceleration = float(data['Acceleration'][i])
    normal_force = float(data['Normal'][i])
    mu_val = float(data['Mu'][i])
    # 调用函数计算
    result = forceAppliedCalc(mass, acceleration, normal_force, mu_val)
    # 保留2位小数存入结果列表,可根据需求修改精度
    data['AppliedForce'].append(round(result, 2))

# 测试输出前3条结果验证
for i in range(3):
    print(f"姓名:{data['Name'][i]},计算得出施加作用力:{data['AppliedForce'][i]}")

如果需要把计算结果写回新的CSV文件,可补充以下代码:

# 写入结果到新CSV文件
with open("Result_Data.csv", "w", newline="") as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(data.keys())
    # 按行写入数据
    for i in range(len(data['Mass'])):
        row = [data[key][i] for key in data.keys()]
        writer.writerow(row)

另外你原来的文件读取代码没有手动关闭文件,更稳妥的写法是用with上下文管理器自动释放资源:

# 优化后的文件读取写法
with open("Data.csv") as file:
    reader = csv.reader(file, delimiter=",")
    data = dict()
    headerRead = False
    headers = []
    for row in reader:
        if not headerRead:
            for col_name in row:
                data[col_name] = []
            headers = row
            headerRead = True
        else:
            for i in range(len(row)):
                data[headers[i]].append(row[i])

内容的提问来源于stack exchange,提问作者Norbu Samdrup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:02