繁体   English   中英

如何将“发票”级别的数据解析为柱状数据以进行分析?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM