ปัญหาเกี่ยวกับไฟล์ CSV ที่เขียนบน python

Sep 13 2020

หวังว่าทุกคนจะทำได้ดีมาก ฉันมีปัญหาขณะเขียนโค้ด ฉันมีไฟล์ CSV ที่มี 2 คอลัมน์ หนึ่งคือเครื่องหมาย (หมายเลขระหว่าง 1 ถึง 5) และอีกอันมีบทวิจารณ์ที่สอดคล้องกับคำวิจารณ์นั้น เป้าหมายที่แท้จริงของฉันคือการสร้างไฟล์ CSV ใหม่ แต่แก้ไขโน้ตซึ่งควรเป็น 1 ถ้าเครื่องหมายคือ> = 3 else 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 คั่นด้วยอัฒภาค

คำตอบ

a11apurva Sep 13 2020 at 11:21

ฉันจะลองแบบนี้ -

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 () จะดูแลบรรทัดใหม่ที่แทรกระหว่างแต่ละแถว

ตัวอย่างข้อมูลนี้จะดูแลส่วนหัวด้วย

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.']

นี่คือแถว

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] ควรเป็นอย่างที่ฉันเดา