我仅在使用MS Excel打开时才意识到此错误,但是在使用Notepad ++打开时就很好。使用Excel打开时,这些值不在相应的列中。我有以下代码,这些代码仅帮助我根据binary.csv中的值1进行乘法,并输出不包含binary.csv中所有0值的值。谁能帮我?
二进制文件
0,1,0,0,1,0,1,0,0
1,0,0,0,0,1,0,1,0
0,0,1,0,1,0,1,0,0
real.csv
0.1,0.2,0.4,0.1,0.5,0.5,0.3,0.6,0.3
代码
import csv
with open('real.csv', 'rb') as csvfile:
for row in csv.reader(csvfile, delimiter=','):
reals = row
with open('binary.csv', 'rb') as csvfile:
pwreader = csv.reader(csvfile, delimiter=',')
with open('onehothot.csv','wb') as testfile:
csv_writer=csv.writer(testfile)
for row in pwreader:
result = []
for i,b in enumerate(row):
if b == '1' :
result.append(reals[i])
c= ",".join(result)
print(c)
csv_writer.writerow([c])
使用记事本++打开的csv文件中的输出
0.2,0.5,0.3
0.1,0.5,0.6
0.4,0.5,0.3
使用MS Excel打开csv文件中的所需输出(填充3行3列)
0.2 0.5 0.3
0.1 0.5 0.6
0.4 0.5 0.3
我使用MS Excel打开的实际CSV输出文件分为3行和1列,因为“ 0.2 0.5 0.3”被视为单个实体。因此,在Excel中仅显示3个实体。
无需尝试通过与进行连接来创建每一列,,
因为该csv
库将为您完成此操作,而无需编写如下代码:
import csv
with open('real.csv', 'rb') as csvfile:
for row in csv.reader(csvfile, delimiter=','):
reals = row
with open('binary.csv', 'rb') as csvfile:
pwreader = csv.reader(csvfile, delimiter=',')
with open('onehothot.csv','wb') as testfile:
csv_writer=csv.writer(testfile)
for row in pwreader:
result = []
for i,b in enumerate(row):
if b == '1' :
result.append(reals[i])
csv_writer.writerow(result)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句