数据看起来像这样
发票1
ID
Lat
Long
Year
Month
Observations
1
.
.
.
n
#-----
发票2-n (模式重复)
我的目标是以表格
结束ID | Lat | Long | Year | Month | Obs 1 | Obs 2 | Obs 3 | Obs n
#-----
充当发票之间的分隔符
此时很容易从宽到长,但是编写映射规则并迭代数据的最佳方法是什么?我的所有数据都在一个.csv中,但它超过100万行。
我正在寻找一个可以开始的地方,以及以这种格式处理数据的一般流程。
答案 0 :(得分:0)
with open('path/to/input') as infile, open('path/to/output', 'w') as fout:
outfile = csv.writer(fout)
invoice = []
for line in infile:
if line.startswith("Invoice"):
outfile.writerow(invoice)
invoice = []
continue
line = line.strip()
if not line: continue
invoice.append(line)
outfile.writerow(invoice)
答案 1 :(得分:0)
一个简单的循环应该有效:
with open('...') as infile:
data = []
line = []
item = infile.readline().strip()
while item != '':
if item.startswith('#-----'):
data.append(line)
line = []
else:
line.append(item)
item = infile.readline().strip()
最后,data
是一个列表列表(不一定是矩形)。