Я понял эту ошибку только при открытии с помощью MS Excel, но это нормально, когда вы открываете с помощью Notepad ++. Значения не отображаются в соответствующих столбцах при открытии с помощью Excel. У меня есть следующий код, который помогает мне делать умножение только в соответствии со значением 1 в файле binary.csv и выдает значения, исключая все значения 0 в файле binary.csv. Может кто-нибудь мне помочь?Python: ошибка сохранения вывода в файл csv?
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])
Выход в CSV файл открыт с помощью Notepad ++
0.2,0.5,0.3
0.1,0.5,0.6
0.4,0.5,0.3
Желаемая выход в CSV файл открыт с помощью MS Excel (в 3 строк и 3 столбцов, заполненных)
0.2 0.5 0.3
0.1 0.5 0.6
0.4 0.5 0.3
Фактический выход CSV файл я открываю с помощью MS Excel находится в 3 строках и заполняется 1 столбец, потому что «0,2 0,5 0,3» рассматривается как единый объект. Поэтому в Excel отображаются только 3 объекта.
Я не вижу ничего плохого с выходом , Что вы ожидаете получить? – barny
Выход прекрасен. Просто при открытии с помощью MS Excel ответ состоит из 3 столбцов вместо 9 столбцов. Я хотел бы иметь его в 9 столбцах Excel. – Xiong89
Но вывод, который вы показываете, имеет три столбца, поэтому неудивительно, что в Excel есть три столбца. Как могло быть больше? – barny