ValueError:从数据集中删除空字符串时,以10为基数的int()的文本无效:“FALSE”

2024-09-29 21:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

with open(filename,'r') as input_file:
    
csv_reader = csv.reader(input_file,delimiter = ',')
    
    for line_number, line in enumerate(csv_reader):
        if line_number == 0: # skip the header
            continue
        #if line[10] == '':
            #line.insert(10,0)
        my_dic.append({
            
            'First Name':line[11],
            'Last name':line[13],
            'Age(Years)':int(line[3]),
            'Sex':line[18],
            'type of car':line[16],
            'Marital Status':line[14],
            'Dependants':line[10],
            'Yearly Salary':int(line[17]),
            'Yearly Pension':int(line[15]),
            'Company':line[5],
            'Commuted Distance':float(line[4]),
            'vehicle':{
                'Make':line[19],
                'model':line[20],
                'year':int(line[21]),
                'category':line[22]
                
            },
            'Credit Card':{
                'Start Date':line[6],
                'End Date':line[7],
                'Card number':line[8],
                'Card CCV':int(line[9]),
                'iban':line[12]
                
            },
            'Address':{
                'Street':line[0],
                'City':line[1],
                'Postcode':line[2]
            }
            
            
            
        })

我有上面将csv文件转换为字典的代码,我还想替换数据集第10列中的空字符串。如果我删除注释代码(尝试用数字替换第10列(数据)中的空字符串的代码),我的代码会工作。但是,如果我删除注释,它会在我键入整数的“年薪”键处给出值错误)

1.如何用数字替换列中的空字符串(我不想使用熊猫)

  1. 我还想知道更正发生的行

Tags: csv数据字符串代码numberinputdateif
1条回答
网友
1楼 · 发布于 2024-09-29 21:29:45

line.insert(10,0)向数组插入附加值。例如,如果数组的长度为20,则在insert之后,它的长度将为21。您得到了错误的值,在第17位,您得到了一个非整数值

您希望替换该值,而不是插入它

line[10] = 0

但是,如果转换是在字典本身中完成的,则代码更容易理解

{
...
"Dependants": line[10] or 0,
...
}
  1. 要获取行号,最简单的方法是将line_number存储到某个数组中。。。比如说,
missing_data_on_dependants_row_idxs = list()
for line_number, line in enumerate(csv_reader):
    if line_number == 0: # skip the header
        continue
    if line[10] is None:
        missind_data_on_dependants_row_idxs.append(line_number)
...

此外,通过索引引用列也很难理解。你考虑使用^ {CD4}}吗?

相关问题 更多 >

    热门问题