web-dev-qa-db-ja.com

Pythonリストを単一のCSV列に書き込む

.csvファイルの1つの列に入力する数値のリストがあります。以下のコードは、単一の行にわたって値を書き込みます。 Python=が各値を別々の行に書き込むように、コードをどのように変更できますか?ありがとうございます。

        with open('returns.csv', 'wb') as f:
            writer = csv.writer(f)
            writer.writerow(daily_returns)
22
user1028861

Python3では、ファイルをwモードで開きます。

with open('returns.csv', 'w') as f:
    writer = csv.writer(f)
    for val in daily_returns:
        writer.writerow([val])

Python2.6以降では、ファイルをwbモードで開きます。

with open('returns.csv', 'wb') as f:
    writer = csv.writer(f)
    for val in daily_returns:
        writer.writerow([val])
23
unutbu

代替ソリューション: daily_returnsがCSVファイルの列として書き込むリストの名前であるとすると、次のコードが機能するはずです。

with open('return.csv','w') as f:
    writer = csv.writer(f);
    writer.writerows(Zip(daily_returns));
8
Alankar Jain

参考までに:

私はPython 3.2を使用しており、次のものしか機能しませんでした

with open('returns','w')as f:
    writer=csv.writer(f,lineterminator='\n')
    for val in returns:
        writer.writerow([val])
2
Oregano

単一の列を書き込む場合は、csvコマンドを使用せず、単純なpython str.join()メソッド を使用することをお勧めします。

    with open('returns.csv', 'wb') as f:
        f.write("\n".join(daily_returns))
2
spinup