我有一个大数据集,在第二列中有Sentence及其情绪状态。我已经开发了代码来将它们作为numpy数组读取。然后我需要的是,如果一个句子的情绪是中立的,那么返回为真,如果不是,则返回false。 if else条件返回的每个结果都应写入CSV文件。但是在这里它只会在CSV文件中写入一次结果,而不是写入for循环的每次迭代返回的所有结果。以下是我到目前为止的代码。
public class Ball
{
public static List<Ball> balls = new List<Ball>();
public int value { get; set; }
public Boolean active { get; set; }
public Ball() {}
public Ball(int size)
{
// initial class
Random rand = new Random();
for (int i = 0; i < size; i++)
{
balls.Add(new Ball(){ value = rand.Next(), active = false});
}
}
public Ball GetRandom()
{
Random rand = new Random();
Ball randomBall = balls.Where(x => x.active == false).Select((x) => new { value = x, randX = rand.Next() }).OrderBy(x => x.randX).FirstOrDefault().value;
randomBall.active = true;
return randomBall;
}
}
我可能在某个地方错了。有人请帮助我。
答案 0 :(得分:2)
如果我正确理解了问题,您应该打开追加而不是写的文件。
with open('test.csv', 'a') as csvfile:
fieldnames = ['result']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'result': 'True'})
此外,您正在重复if / else条件块中的代码;你应该创建一个变量result_dict
,它等于{&#39;结果&#39;:&#39; True&#39;}或{&#39;结果&#39;:&#39; False&#39;然后在if / else块之外写入,这样你就不必在条件块中打开文件了。如果这还不清楚,请告诉我。