在Python中将字符串值写入CSV文件

时间:2017-04-30 15:57:16

标签: python csv numpy

我有一个大数据集,在第二列中有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;
        }
    }

我可能在某个地方错了。有人请帮助我。

1 个答案:

答案 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块之外写入,这样你就不必在条件块中打开文件了。如果这还不清楚,请告诉我。