Python:将输出保存到 csv 文件时出错?
Python: Error saving output into csv file?
只有用MS打开才发现这个错误Excel但是用Notepad++打开就没问题了。当我使用 Excel 打开时,这些值不在相应的列中。我有以下代码可以帮助我仅根据 binary.csv 中的值 1 进行乘法运算,并输出排除 binary.csv 中所有 0 值的值。谁能帮帮我?
binary.csv
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])
使用Notepad++打开csv文件输出
0.2,0.5,0.3
0.1,0.5,0.6
0.4,0.5,0.3
使用 MS 打开的 csv 文件中的所需输出 Excel(填充 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)
只有用MS打开才发现这个错误Excel但是用Notepad++打开就没问题了。当我使用 Excel 打开时,这些值不在相应的列中。我有以下代码可以帮助我仅根据 binary.csv 中的值 1 进行乘法运算,并输出排除 binary.csv 中所有 0 值的值。谁能帮帮我?
binary.csv
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])
使用Notepad++打开csv文件输出
0.2,0.5,0.3
0.1,0.5,0.6
0.4,0.5,0.3
使用 MS 打开的 csv 文件中的所需输出 Excel(填充 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)