Sự cố khi ghi tệp CSV trên python

Sep 13 2020

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

a11apurva Sep 13 2020 at 11:21

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 đề.

UngarsCommeça Sep 13 2020 at 11:48

['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