【发布时间】:2017-02-23 12:46:20
【问题描述】:
我有两个 .csv 文件,它们只有一行,但有很多列。我希望比较列中的数据(前 3 列除外)并输出一个新的.csv,其中包含文件的减法,计算为baseline - test。
test1.csv
20170223, 433000000, 8k, -50, -50, -10, -50, -50
baseline.csv
20170223, 433000000, 8k, -50, -50, -50, -50, -50
生成的.csv 文件应如下所示:
20170223, 433000000, 8k, 0, 0, -40, -0, -0
我能够调出.csv 文件,但事实证明是列位置和计算很困难。
这是我目前所拥有的:
import csv
with open('test001.csv', 'r') as f:
reader = csv.reader(f, delimiter = ',')
first_list = list(reader)
f.close()
with open('test002.csv', 'r') as f:
reader = csv.reader(f)
second_list = list(reader)
f.close()
result_list = list()
list_a = list()
list_b = list()
for row in first_list:
for x in range(0, 6):
result_list.append(row[x])
for x in range(6, len(row)-1):
list_a.append(row[x])
for row in second_list:
for x in range(6, len(row)-1):
print(row[x])
list_b.append(row[x])
for x in range(0, len(list_a)-1):
a = float(list_a[x])
b = float(list_b[x])
c = a-b
result_list.append(c)
myfile = open('difference.csv', 'w')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(result_list)
myfile.close()
【问题讨论】:
-
请发布您迄今为止尝试过的内容——代码和错误——以便我们提供帮助!
-
您可以使用 pandas 读取 csv 文件。然后,您可以有两个数据帧(df1 -> 带有 test.csv / df2 -> 带有基线)您可以创建 df3 = df1 - df2
-
能否请您显示您正在使用的代码以及您的困难所在?您使用哪些工具来加载
.csv?如果有人建议不同的工具,是否可以接受? -
您可以编辑您的代码以保留缩进吗?我也认为打印行的内容没有意义。
-
当您知道每个列表中只有一行时,为什么还要遍历列表行?
标签: python csv analysis subtraction array-difference