我希望获取一个CSV文件并使用python 2.7对文件进行排序,以获得基于块和批次的两列的单个值。我的数据现在在下面的链接中显示:
我希望能够使用Python创建额外的行以将其自动化为新的CSV,其中当在新CSV上绘制时值将如下所示
所以我知道我需要读取行和列,并根据批次列的单元格值,如果有","然后该行将被复制到另一个csv中的下一行,并且只复制第一列之前的所有值,然后复制第二列,第三列等。
分离出逗号后,范围将以类似的方式在第三个CSV中进行管理。如果只有一个值,整个行将按原样复制。
感谢您提供的帮助。
答案 0 :(得分:0)
这应该有用。
;
分隔,因为单元格包含,
,
拆分,然后检查范围print line
用于调试代码:
import csv
file_in = csv.reader(open('input.csv', 'rb'), delimiter=';')
file_out = csv.writer(open('output.csv', 'wb'), delimiter=';')
for i, line in enumerate(file_in):
if i == 0:
# write header
file_out.writerow(line)
print line
continue
for j in line[1].split(','):
if len(j.split('-')) > 1:
# lines with -
start = int(j.split('-')[0])
end = int(j.split('-')[1])
for k in xrange(start, end + 1):
line[1] = k
file_out.writerow(line)
print line
else:
# lines with ,
line[1] = j
file_out.writerow(line)
print line