2017-03-18 7 views
1

私はデータフレーム上のforループ内で計算を行う簡単なプログラムを持っています。変数をCSV行に書き込むPython

プログラムは5つの変数の結果を出力します。各繰り返しの後にa、b、c、d、eを入力してください。

ループが実行されるたびに、これらの5つの値を新しい行に追加するだけですが、最初に必要な、すべてのヘルプファイルに値を書き込むには

csvRow = [x, ctr, clicks, spend, bidTotal, cpm, cpc] 
    csvfile = "data.csv" 
    with open(csvfile, "a") as fp: 
    wr = csv.writer(fp, dialect='excel') 
    wr.writerow(csvRow) 
+2

少なくとも失敗した試み。 –

+0

ありがとうございました更新しましたが、最初にリストに格納することで行ごとに追加するようにしましたが、いつでも行が残っています – Coder

答えて

2
適切に集計した場合にあなたのコードが正常に動作するように見える

import csv 
x, ctr, clicks, spend, bidTotal, cpm, cpc = 1, 2, 3, 4, 5, 6, 7 
csvRow = [x, ctr, clicks, spend, bidTotal, cpm, cpc] 
csvfile = "data.csv" 
with open(csvfile, "a") as fp: 
    wr = csv.writer(fp, dialect='excel') 
    wr.writerow(csvRow) 
    wr.writerow(['a', 'b', 'c', 'd', 'e', 'f', 'g']) 

open(csvfile, 'r').read()その後、返します

'1,2,3,4,5,6,7 \ r \ na、b、c、d、e、f、g \ r \ n'

- 期待どおりです。

まだ動作していない場合は、問題を再現する最小限の例を提供してください。既存のファイルに追加することを覚えておいてください(間違って見える場合は、以前のバージョンのプログラムで残っている問題かもしれません)。 Windowsを実行しているとき

+0

返事ありがとう、私は最初の答えで行を使用し、私の書式設定の問題 – Coder

+1

@ジェイソンはあなたのケースで動作しますが、一般的には素晴らしいソリューションではありませんでした。元のコードが望ましいです。 'csv。作者はあなたのためのフォーマットを行い、コンマを含む文字列のような困難なケースを処理します。 – Stuart

0

をいただければ幸いです

一緒にではなく、行よりも、私は基本的なCSV形式の書き込みを試みたが、彼らは常に同じ列に表示されます値を入れて、ファイルを開くには:

file = open('filename.csv', 'a') #opens a file for appending

次に、あなたのループの各反復上のファイルに書き込む必要があります

そして、あなたはそれで行われたときに、ファイルを閉じます。

file.close()

+0

ありがとう、これで置き換えられ、新しい行の問題は消えました – Coder

+0

すべての引用/エスケープが適切に管理されていないことを、csvモジュールを完全にスキップすることをお勧めします。 –

関連する問題