我有一个CSV文件,如下所示:
row1
1
3
5
8
我需要从一行到它的跟随行的不同:
row1
1 1-1 = 0
3 3-1 = 2
5 5-3 = 2
8 8-5 = 3
然后得到结果(0, 2, 2, 3)
的平均值。不是寻找一个直接的答案,而是一个起点
发布于 2019-12-27 05:54:54
这里有一种方法:
with open("test.csv") as f:
lines = f.readlines()
# the first row is always 0
result = [0,] + [ int(lines[x]) - int(lines[x-1]) for x in range(1,len(lines))]
#print the array of differences
print(result)
#print the average
print(sum(result)/len(result))
发布于 2019-12-27 05:29:29
如果你只想要一个起点:
with open("yourfile.csv", "r") as f:
lines = f.readlines()
for index, line in enumerate(lines[1:]):
number = int(line)
if index == 0:
# magic for the first row
else:
# magic for a normal row
你必须以不同的方式处理第一行,因为你不能回头看,因为它是第一行。
编辑:解决方案
with open("input.csv", "r") as f:
lines = f.readlines()
output = [0]
header = lines[0]
data = [int(number) for number in lines[1:]]
for index, number in enumerate(data[1:],1):
output.append(number-data[index-1])
print(output)
print("Average: {}".format(sum(output)/len(output)))
输出:
[0, 2, 2, 3]
Average: 1.75
https://stackoverflow.com/questions/59493593
复制相似问题