python-3.x - 关于从文件计算传入数据的问题
问题描述
如果我正在读取带有一些变量的数据文件,我需要通过从不同的行添加它们来计算不同项目的总数。例如:
Fruit,Number
banana,25
apple,12
kiwi,29
apple,44
apple,81
kiwi,3
banana,109
kiwi,113
kiwi,68
我们需要添加第三个变量,即水果的总数,以及所有水果的总数。所以输出应该如下所示:
Fruit,Number,TotalFruit,TotalAllFruits
banana,25,25,25
apple,12,12,37
kiwi,29,29,66
apple,44,56,110
apple,81,137,191
kiwi,3,32,194
banana,109,134,303
kiwi,113,145,416
kiwi,68,213,484
我能够打印前 2 列,但后 2 列有问题
import sys
import re
f1 = open("SampleInput.csv", "r")
f2 = open('SampleOutput.csv', 'a')
sys.stdout = f2
print("Fruit,Number,TotalFruit,TotalAllFruits")
for line1 in f1:
fruit_list = line1.split(',')
exec("%s = %d" % (fruit_list[1], 0))
print(fruit_list[0] + ',' + fruit_list[1])
我只是在学习python,所以如果我遗漏了一些非常简单的东西,我想提前道歉。
解决方案
您需要声明一个二维数组以保留从输入文件中读取的值。并且在循环期间,您需要从前几行读取值,然后计算当前行的值。并在读取所有输入行后打印二维数组。
推荐阅读
- uitableview - 使用 UITableView 时发生不需要的 segue
- sql - 在表格中选择“Ratio_to_report”
- html - 是否可以
- python - 在 Python 中计算符号数组的指数
- python - Pandas 的输出不一致以 np.std 作为函数参数应用函数
- python - 如何将 RGBA 字节串转换为灰度图像?
- netbeans - 有没有办法修复netbeans中的自动缩进,netbeans花括号自动插入会做一些奇怪的事情?
- javascript - 在错误的 div 中创建波形
- graphql - graphql中upade函数的单独类型突变有什么意义?
- javascript - 在 JavaScript 中解构导入的对象