首页 > 解决方案 > 如何从 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]

这种方法有效,但似乎效率低下。寻找一种替代和优化的方法来实现这一目标。

标签: pythonstringcsvinteger

解决方案


使用 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]

推荐阅读