3

サイズが 27000 行 x 22 列の大きな csv ファイルを計算するスクリプトを作成しました。このスレッドのような散在するプロットで matplotlib で使用するために CSV ファイルを読み込むにはどうすればよいですか?

散布図の軸範囲

散布図を生成する概念は理解されています。csv ファイルを解析する試みが次のように行われました。

data=csv.reader(open('some_file.csv, 'rb'), delimiter='|', quotechar='"')

しかし、成功しませんでした。

4

3 に答える 3

9

ここに簡単な解決策があります

def getColumn(filename, column):
    results = csv.reader(open(filename), delimiter="\t")
    return [result[column] for result in results]

そして、あなたはそれをこのように使うことができます

time = getColumn("filename",0)
volt = getColumn("filaname",1)

plt.figure("Time/Volt")
plt.xlabel("Time(ms)")
plt.ylabel("Volt(mV)")
plt.plot(time,volt)
于 2012-02-27T22:39:30.940 に答える
2

一般的な代替手段として、Wes McKinney による pandas python パッケージに興味があるかもしれません: http://pandas.pydata.org/

Python を使ったデータ分析のおかげで、文字通り私の人生が変わりました。R の data.frame に似たデータ構造を python に提供しますが、さらに強力です。そして、それはnumpyの上に構築されています。

また、csv ファイルを非常に簡単に読み取り、データを簡単にスライスして操作できる DataFrame (numpy 配列サブクラス) にロードします。

于 2012-02-28T05:29:34.477 に答える
1

それは正しい区切り文字ですか?ドキュメントを読みましたか? http://docs.python.org/library/csv.html

dataファイルのようなオブジェクトです。データにアクセスするには、それを反復処理する必要があります。マーカスが彼の例で指摘しているように、各行はリストです。

于 2012-02-27T22:40:39.763 に答える