我有很多具有以下格式的 .csv 文件。
338,800
338,550
339,670
340,600
327,500
301,430
299,350
284,339
284,338
283,335
283,330
283,310
282,310
282,300
282,300
283,290
从第一列开始,我想读取当前行并将其与前一行的值进行比较。如果它大于或等于,则继续比较,如果当前单元格的值小于前一行 - 然后我将当前值除以前一个值并继续。例如,在上面给出的表中:根据我的要求,我们从第 1 列得到的较小值是 327(因为 327 小于之前的值 340) - 然后我们将 327 除以 340,得到值 0.96。我的 python 脚本应该在打印条件后立即退出(A)如下所示。
from __future__ import division
import csv
def category(val):
if 0.8 < val <= 0.9:
return "A"
if abs(val - 0.7) < 1e-10:
return "B"
if 0.5 < val < 0.7:
return "C"
if abs(val - 0.5) < 1e-10:
return "E"
return "D"
with open("test.csv", "r") as csvfile:
ff = csv.reader(csvfile)
results = []
previous_value = 0
for col1, col2 in ff:
if not col1.isdigit():
continue
value = int(col1)
if value >= previous_value:
previous_value = value
continue
else:
result = int(col1)/ int(previous_value)
results.append(result)
print category(result)
previous_value = value
print (results)
print (sum(results))
print (category(sum(results) / len(results)))
最后,我想为当前目录中的所有 .csv 文件运行我的脚本,并构建一个如下所示的混淆矩阵。比方说A1.csv
, A2.csv
, A3.csv
应该(或预测)打印 A,B1.csv
, B2.csv
, B3.csv
应该(或预计)打印B
and C1.csv
, C2.csv
and C3.csv
应该(或预测)打印 C,...等。我们如何从多个自动创建混淆矩阵.csv
文件例如如下使用Python
?
如下所示,矩阵的彩色块(行标签)将向我们展示number of counts
A(A 的真实值计数)、B(b 的真实值计数)和 C(C 的真实值计数)等来自我们函数的控制逻辑category()
- 上面给出。来自 if-else 语句内的控制逻辑的列标签(A、B、C、D 和 E)。