[英]How do I parse “invoice” level data into columnar data for analysis?
数据看起来像这样
发票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万行。
我正在寻找一个起点,以及处理这种格式数据的一般过程。
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)
一个简单的循环应该起作用:
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
是列表的列表(不一定是矩形)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.