python - 如何从 csv 文件中读取字符串并将其转换为整数数组?
问题描述
我正在寻找借助 csv 文件中的数据创建整数数组的最优化方法。
csv 文件(“sample.csv”)数据就像,
预测1 | 预测2 | 预测3 |
---|---|---|
低的 | 低的 | 低的 |
低的 | 高的 | 高的 |
其中低= 1,高= 3,
我想从 csv 中读取这些数据并制作一个看起来像的数组,
array =
[[1,1,1],
[1,3,3]]
import csv
import sys
num1 = 'low'
num2 = 'high'
csv_file = csv.reader(open('sample.csv', "r"), delimiter=",")
count = 0
for row in csv_file:
if count == 1:
if num1 == row[0]:
dat1 = 1
elif num2 == row[0]:
dat1 = 3
if num1 == row[1]:
dat2 = 1
elif num2 == row[1]:
dat2 = 3
if num1 == row[2]:
dat3 = 1
elif num2 == row[2]:
dat3 = 3
count = count + 1
array =[dat1,dat2,dat3]
这种方法有效,但似乎效率低下。寻找一种替代和优化的方法来实现这一目标。
解决方案
使用 adict
进行查找和列表理解
前任:
check = {'low': 1, "high": 3}
with open('sample.csv') as infile:
csv_file = csv.reader(infile)
next(csv_file) # skip header
result = [[check[c] for c in row] for row in csv_file]
推荐阅读
- java - 为什么 ESAPI 编码器不适用于 Java 1.8
- android - Fragment 中的参数仍然为空
- c# - 从 ImageView 中获取 Image 并将其转换为 system.Drawing 的 Bitmap
- javascript - 无法获取通过 JavaScript 添加的 HTML 元素
- input - 如何接受用户的实时输入
- javascript - 反应 axios.get - Firebase
- javascript - jQuery prop() 方法有效,但它不会向元素添加“禁用”属性
- http - 无法从其他设备访问 Windows Server 上的 Go API
- angular - 如何滚动div中的特定元素?
- css - 关于移动 safari 渲染问题的任何想法