我有一个10万条记录的主列表,每条记录都属于一个公司编号。我试图通过选择每个公司编号中的2个来创建一个示例数据。“def Company”遍历数据并返回唯一的公司编号和每个公司编号的计数。你知道吗
我的脚本只输出列表中第一个公司的2条记录并停止,如何使每个公司的循环输出2条?你知道吗
数据如下所示(列[0]是公司编号):
'54', '000054', '14571', ' 0000010023'
'54', '000054', '14571', ' 0000010033'
'4', '000054', '14571', ' 0000010024'
'4', '000054', '14571', ' 0000010023'
'433', '000054', '14571', ' 000001023423'
'433', '000054', '14571', ' 00000101563'
'433', '000054', '14571', ' 00000100234523'
'433', '000054', '14571', ' 00000100657823'
'433', '000054', '14571', ' 0000010SDF023'
'78', '000054', '14571', ' 000001002PIWEUR3'
'78', '000054', '14571', ' 00000100J23'
'78', '000054', '14571', ' 00000100222223'
'78', '000054', '14571', ' 000001002445'
'12', '000054', '14571', ' 0000010256'
'12', '000054', '14571', ' 000001005666'
import os
import sys
import csv
from collections import Counter
masterlist = open('P:/20140408.txt', 'rb')
data = csv.reader(masterlist, delimiter=",", quotechar='"')
def Company():
masterlist.seek(0)
cnt = Counter()
for row in data:
cnt[row[0]] +=1
return cnt
def maintest():
companylist = Company().keys()
masterlist.seek(0)
s = 2
for rows in data:
if rows[0] in companylist and s > 0:
print rows
s -=1
maintest()
我将保留一个简单的公司ID映射,而不是使用counter,它是您在循环中看到的次数:
如果您正在寻找一个真正的“示例”,而不是前两个,并且如果您可以将所有数据保存在内存中,则可以执行以下操作:
将示例数据作为csv文件打印:
相关问题 更多 >
编程相关推荐