Проблема с записью CSV-файла на Python
Надеюсь, у вас все отлично. У меня проблема при написании кода. У меня есть файл CSV с 2 столбцами. Один - это отметка (число от 1 до 5), а другой - соответствующий ей отзыв. Моя настоящая цель - создать новый файл CSV, но изменить примечание, которое должно быть 1, если метка> = 3, иначе 0. Я действительно застрял на этом:
train_csv_path = "hotel_reviews.csv"
with open('new_hotel_reviews.csv', 'w') as newfile:
writer = csv.writer(newfile)
with open(train_csv_path, 'r') as f:
reader = csv.reader(f)
for row in reader:
writer.writerow(row)
Он пишет в файл, но между каждой строкой у меня пустая строка. Также я не знаю, как я получу доступ к первому столбцу, чтобы изменить его на 1 или 0.
CSV-файл разделяется точкой с запятой.
Ответы
Я бы попробовал вот так -
with open('outfile.csv', 'w', newline='') as outfile:
writer=csv.writer(outfile, delimiter=';')
with open('infile.csv', mode='r') as infile:
reader = csv.reader(infile, delimiter=';')
headers = next(reader)
writer.writerow(headers)
for rows in reader:
print(rows)
if int(rows[0])>=3:
rows[0] = "1"
else:
rows[0] = "0"
writer.writerow(rows)
Добавьте delimiter=';'читателя и писателя, чтобы позаботиться о точке с запятой.
newline='' в open () позаботится о том, чтобы между каждой строкой были вставлены новые строки.
Этот фрагмент также позаботится о заголовках.
['4;Clean facility just off freeway ..... staff friendly and efficient .... good breakfast choices. We will stay here again for follow up visits with doctors at UT Northeast and recommend it for others requiring expected high standards from Hilton properties.']
это ряды
4;Clean facility just off freeway ..... staff friendly and efficient .... good breakfast choices. We will stay here again for follow up visits with doctors at UT Northeast and recommend it for others requiring expected high standards from Hilton properties.
это строки [0], поэтому изменение строк [0] приведет к ошибке, поэтому строки [0] [0] должны быть такими, как я предполагаю