2013-04-08 36 views
0

我对python比较陌生,而且我遇到了很多问题。 我想从包含很多空值的csv文件中使用两列创建一个图。有没有办法将空值转换为零或删除某些列中包含空值的行?从包含空值的CSV制图列-python

+0

def nullable_float(x): return float(x) if x else 0.0 with open('foo.csv') as f: next(reader) # skip header for row in csv.reader(f): a, b = map(nullable_float, row) do_stuff_with(a, b) 

如果你想跳过含有B列中null值的任何行,你只是在做转换之前检查B列是的,有一种方法可以做到这一点,但你的csv文件格式化为'null'的值究竟是多少?你在Python中使用什么来解析csv文件? – 2013-04-08 22:33:01

回答

1

你问的问题没有详细说明,但我想如果我们选择一个具体的例子,你应该能够弄清楚如何使它适应你的实际用例。

所以,让我们说你的价值都是无论是浮动的字符串表示,或一个空字符串代表空:

A,B 
1.0,2.0 
2.0, 
,3.0 
4.0,5.0 

而且假设你使用的是csv.reader读这篇文章,和你明确一个与一些do_stuff_with功能处理的行之一:

with open('foo.csv') as f: 
    next(reader) # skip header 
    for row in csv.reader(f): 
     a, b = map(float, row) 
     do_stuff_with(a, b) 

现在,如果你想将NULL值视为0.0,你只需要与对返回float(x)功能,以取代float非空x0.0x

with open('foo.csv') as f: 
    next(reader) # skip header 
    for row in csv.reader(f): 
     if not row[1]: 
      continue 
     a, b = map(nullable_float, row) 
     do_stuff_with(a, b)