Sự cố khi ghi tệp CSV trên python
Hy vọng tất cả các bạn đang làm tốt. Tôi đã gặp sự cố khi viết một số mã. Tôi có một tệp CSV có 2 cột. Một là dấu (số từ 1 đến 5) và một là đánh giá tương ứng với nó. Mục tiêu thực tế của tôi là tạo một tệp CSV mới, nhưng sửa đổi ghi chú, ghi chú sẽ là 1 nếu dấu> = 3 khác 0. Tôi thực sự bị mắc kẹt về điều này:
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)
Nó ghi trong tệp, nhưng tôi có một hàng trống giữa mỗi hàng. Ngoài ra, tôi không biết bằng cách nào tôi sẽ truy cập cột đầu tiên để thay đổi nó thành 1 hoặc 0.
Tệp CSV được phân tách bằng dấu chấm phẩy.
Trả lời
Tôi sẽ thử nó như thế này -
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)
Thêm delimiter=';'cả người đọc và người viết để chăm sóc dấu chấm phẩy.
newline='' trong open () sẽ quan tâm đến các dòng mới được chèn vào giữa mỗi hàng.
Đoạn mã này cũng sẽ quan tâm đến tiêu đề.
['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.']
đây là một hàng
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.
đây là một hàng [0], vì vậy việc thay đổi hàng [0] sẽ dẫn đến lỗi, vì vậy các hàng [0] [0] phải là cách tôi đoán