我的数据如下:
Observation 1
Type : 1
Color: 2
Observation 2
Color: 2
Resolution: 3
最初我所做的是尝试创建一个看起来像这样的csv:
1,2
2,3 # Only problem here is that the data should look like this 1,2,\n ,2,3 #
我执行了以下操作:
while linecache.getline(filename, curline):
for i in range(2):
data_manipulated = linecache.getline(filename, curline).rstrip()
datamanipulated2 = data_manipulated.split(":")
datamanipulated2.pop(0)
lines.append(':'.join(datamanipulated2))
这是一个非常大的数据集,我试图找到验证上述问题不会发生的方法,这样我就可以适当地编译数据并进行检查。我遇到了字典,但是,性能对我来说是一个大问题,如果可能的话,我更喜欢列表(至少,我的理解是字典可能会慢得多?)。我只是想知道是否有人对最快最强大的方法有任何建议吗?
答案 0 :(得分:1)
如下:
input_file = open('/path/to/input.file')
results = []
for row in file:
m = re.match('Observation (\d+)', row)
if m:
observation = m.group(1)
continue
m = re.match('Color: (\d+)', row)
if m:
results.append((observation, m.group(1),))
print "{0},{1}".format(*results[-1])
您可以使用预编译的正则表达式加速。