在csv文件中处理int中的字符串,无值
问题描述:
我正在读取csv文件中某些值为“无”的数据。正在读入的值将包含在列表中。在csv文件中处理int中的字符串,无值
该列表是传递给一个函数,它要求列表中的所有值都是int()格式。
但我不能应用这与“无”字符串值存在。我已经尝试用None替换“None”,或者用“”替换,但没有成功,它会导致错误。列表中的数据也需要保持在同一位置,所以我不能完全忽略它们。
我可以用0代替所有的“无”,但是没有!= 0。
编辑:我已经添加了我的代码,所以希望它会更有意义。试图CSV文件中的数据创建一个折线图:
import csv
import sys
from collections import Counter
import pygal
from pygal.style import LightSolarizedStyle
from operator import itemgetter
#Read in file to data variable and set header variable
filename = sys.argv[1]
data = []
with open(filename) as f:
reader = csv.reader(f)
header = reader.next()
data = [row for row in reader]
#count rows in spreadsheet (minus header)
row_count = (sum(1 for row in data))-1
#extract headers which I want to use
headerlist = []
for x in header[1:]:
headerlist.append(x)
#initialise line chart in module pygal. set style, title, and x axis labels using headerlist variable
line_chart = pygal.Line(style = LightSolarizedStyle)
line_chart.title = 'Browser usage evolution (in %)'
line_chart.x_labels = map(str, headerlist)
#create lists for data from spreadsheet to be put in to
empty1 = []
empty2 = []
#select which data i want from spreadsheet
for dataline in data:
empty1.append(dataline[0])
empty2.append(dataline[1:-1])
#DO SOMETHING TO "NONE" VALUES IN EMPTY TWO SO THEY CAN BE PASSED TO INT CONVERTER ASSIGNED TO EMPTY 3
#convert all items in the lists, that are in the list of empty two to int
empty3 = [[int(x) for x in sublist] for sublist in empty2]
#add data to chart line by line
count = -1
for dataline in data:
while count < row_count:
count += 1
line_chart.add(empty1[count], [x for x in empty3[count]])
#function that only takes int data
line_chart.render_to_file("browser.svg")
将会有许多低效或做事,试图慢慢学会的怪异方式的。
设置为0的所有诺内斯,BU这并不能真正反映存在的镀铬前某一日期。谢谢
答
没有看到您的代码,我只能提供有限的帮助。
这听起来像你需要使用ast.literal_eval()。
import ast
csvread = csv.reader(file)
list = []
for row in csvread:
list.append(ast.literal_eval(row[0]))
+0
这可能是正确的答案,但我不知道它会工作,给予'名单传递到函数,它要求列表中的所有值都是int()格式 – Pynchia
请阅读[这](http://*.com/help/mcve) – Pynchia