두 번째 열에 문장과 감정 상태가있는 큰 데이터 세트가 있습니다. 난 numpy 배열로 그들을 읽을 수있는 코드를 개발했습니다. 그렇다면 문장의 감정이 중립적이면 진정한 것으로 돌아가고 그렇지 않으면 거짓을 돌려 주어야합니다. if else 조건에 의해 반환 된 각 결과는 CSV 파일로 작성해야합니다. 그러나 여기에서는 for 루프의 각 반복에 의해 반환되는 모든 결과를 작성하는 대신 CSV 파일에 결과를 한 번만 작성합니다. 다음은 지금까지 가지고있는 코드입니다.파이썬 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')는 호출 될 때마다 파일을 덮어 씁니다. 추가 모드'open ('test.csv', 'a')'에서 열거 나 더 나은 방법으로 루프 앞에서 한 번만 열어야합니다. 또한'with open ('Book1.csv', encoding = 'utf8')의 코드는 csvfile :'으로 들여 쓰기해야합니다. – Craig
와우, book1.csv의 모든 행에 대해 test.csv를 열고 작성하고 닫는 중입니다. 그냥 필수 레코드 사전을 만들고 마지막에 쓰기를 수행합니다. – Pushkr
어쨌든 나는 진실하고 틀린 가치를 세고 싶다. 그보다 다른 방법이 있다면 나는 그것을 따른다. 말해줘. –