2010-07-27 35 views
2
import csv 

with open('thefile.csv', 'rb') as f: 
    data = list(csv.reader(f)) 
    import collections 
    counter = collections.defaultdict(int) 

    for row in data: 
     counter[row[10]] += 1 


with open('/pythonwork/thefile_subset11.csv', 'w') as outfile: 
    writer = csv.writer(outfile) 
    sample_cutoff=500 
    b[] 
    for row in data: 
     if counter[row[10]] >= sample_cutoff: 
      writer.writerow(row) 

除了将数据写入到一个文件,我想将它插入到表b []蟒蛇:将一整行成一个列表

可我只是做b.insert[row]

+0

输出文件应该被打开的WB'而不是“W” – 2010-07-27 23:26:53

回答

2

这是b.append(row),但是否则是。而不是b[]你想要b = []。另一种方式来做到这将是榜上无名第一,然后就在列表中的每个元素写入文件:

b = [row for row in data if counter[row[10]] >= sample_cutoff] 
map(writer.writerow, b) 
1

这是list.insert(索引项)或list.append(项目)。

另外,b[]是名称错误语法错误。我想你的意思是b = []

+0

不能编辑添加或删除从项目'B =()'。 – 2010-07-27 23:04:34

+2

'()'是空元组的语法。列表声明为'[]' – Daenyth 2010-07-27 23:06:23

+0

当然你是对的,谢谢指出错误。 – delnan 2010-07-28 05:51:23

1

是的,b = []将支持insert方法。语法如下。

b.insert(postiion_int, element)