2番目の列にSentenceとその感情状態を持つ大きなデータセットがあります。私はnumpy配列としてそれらを読み取るコードを開発しました。それから、文の感情が中立的であれば真、そうでなければ偽を返します。 if else条件によって返される各結果は、CSVファイルに書き込む必要があります。しかし、ここでは、forループの各反復で返されるすべての結果を書き込むのではなく、結果をCSVファイルに1回だけ書き出します。以下は私がこれまで持っていたコードです。PythonでCSVファイルに文字列値を書き込む
import csv
import numpy as np
with open('Book1.csv', encoding='utf8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
text=(row['text'])
emotion=(row['emotion'])
my_list=(text, emotion)
my_array = np.asarray(my_list)
make_array = (text, "neutral")
num_array = np.asarray(make_array)
if np.array_equal(my_array,num_array):
with open('test.csv', 'w') as csvfile:
fieldnames = ['result']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'result': 'True'})
else:
with open('test.csv', 'w') as csvfile:
fieldnames = ['result']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'result': 'False'})`
どこかで間違っているかもしれません。誰か助けてください。
'open( 'test.csv'、 'w')はファイルが呼び出されるたびにファイルを上書きします。あなたはappendモード 'open( 'test.csv'、 'a')'で開くか、より良い方法としてループの前に一度だけ開く必要があります。また、 'with open( 'Book1.csv'、encoding = 'utf8')のコードはcsvfile:'としてインデントされる必要があります。 – Craig
ohow、book1.csvのすべての行について、あなたはtest.csvを開いて書いて閉じています。あなたはまず必要なレコードの辞書を作成し、最後に書き込みを実行します。 – Pushkr
最終的には真と偽の値を数えたいと思います。むしろそれ以外の方法があるなら私はそれに従う。教えてください。 –