Masalah dengan file CSV yang ditulis di python
Semoga Anda semua baik-baik saja. Saya mendapat masalah saat menulis beberapa kode. Saya memiliki file CSV dengan 2 kolom. Satu adalah tanda (nomor antara 1 dan 5) dan yang lainnya berisi ulasan yang sesuai dengannya. Tujuan saya sebenarnya adalah membuat file CSV baru, tetapi memodifikasi catatan, yang seharusnya menjadi 1 jika tandanya> = 3 lainnya 0. Saya sebenarnya terjebak dalam hal ini:
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)
Ini menulis di file, tetapi saya memiliki baris kosong di antara setiap baris. Juga saya tidak tahu bagaimana saya akan mengakses kolom pertama untuk mengubahnya menjadi 1 atau 0.
File CSV dipisahkan dengan titik koma.
Jawaban
Saya akan mencobanya seperti ini -
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)
Tambahkan delimiter=';'pembaca dan penulis untuk menjaga titik koma.
newline='' in open () akan menangani baris baru yang disisipkan di antara setiap baris.
Cuplikan ini akan menangani header juga.
['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.']
ini adalah baris
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.
ini adalah baris [0], jadi mengubah baris [0] akan menghasilkan kesalahan, jadi baris [0] [0] seharusnya seperti yang saya duga