как записать строку данных в CSV-файл с помощью следующего кода? - PullRequest
0 голосов
/ 25 мая 2020

Я получаю сообщение об ошибке при выполнении следующего кода, как мне это исправить?

Ошибка:

csv.Error: итерация ожидается, а не numpy .int64

y_test = np.array(test_labels)
print('y_test_labels:', y_test.shape) # (230,123)

with open('/content/drive/My Drive/GEINet_and_PEINet/VGG_CSV/test.csv', mode='w') as employee_file:
    employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    #employee_writer.writerow(y_test)
    x,y = y_test.shape
     print('x: ',x)
    for num in range(0, x):
        employee_writer.writerows(y_test[num,:])

Ответы [ 4 ]

0 голосов
/ 25 мая 2020

Вы можете просто сделать это:

with open('/content/drive/My Drive/GEINet_and_PEINet/VGG_CSV/test.csv', mode='w') as employee_file:
    employee_writer.writerows(y_test)
0 голосов
/ 25 мая 2020

Вы должны сделать y_test[num,:] итерируемым, изменив его как последовательность списков, которые вы можете заменить y_test[num,:] на map(lambda x: [x], y_test[num,:]). Другой способ - вместо создания массива NumPy y_test сделать итерацию из кадра данных test_labels с использованием метода to_csv() из pandasSeries с нуля.

0 голосов
/ 25 мая 2020

Вы можете вызвать writerows прямо в массиве:

employee_writer.writerows(y_test)
0 голосов
/ 25 мая 2020

Попробуйте вместо этого employee_writer.writerows(list(y_test[num,:]))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...