Problem z zapisem pliku CSV w Pythonie
Mam nadzieję, że wszyscy świetnie sobie radzicie. Mam problem podczas pisania kodu. Mam plik CSV z 2 kolumnami. Jedna to ocena (liczba od 1 do 5), a druga zawiera odpowiadającą jej recenzję. Moim rzeczywistym celem jest stworzenie nowego pliku CSV, ale zmodyfikowanie notatki, która powinna wynosić 1, jeśli znak wynosi> = 3, w przeciwnym razie 0. Właściwie utknąłem na tym:
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)
Zapisuje w pliku, ale między każdym wierszem jest pusty wiersz. Nie wiem też, jak uzyskam dostęp do pierwszej kolumny, aby zmienić ją na 1 lub 0.
Plik CSV jest rozdzielany średnikami.
Odpowiedzi
Spróbuję tego w ten sposób -
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)
Dodaj delimiter=';'czytelnika i pisarza, aby zająć się średnikiem.
newline='' in open () zajmie się wstawieniem nowych wierszy między każdy wiersz.
Ten fragment zajmie się również nagłówkami.
['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.']
to jest rzędy
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.
to są wiersze [0], więc zmiana wierszy [0] spowoduje błąd, więc wydaje mi się, że wiersze [0] [0] powinny być