5

numpy.recfromcsv(...)一部のフィールドにコンマが含まれている場所を使用して CSV ファイルを読み込もうとしています。カンマが含まれるフィールドは、引用符で囲みます"value1, value2"。Numpy は、引用符で囲まれたフィールドを 2 つの異なるフィールドとして認識しており、うまく機能しません。私が今使っているコマンドは

    data = numpy.recfromcsv(dataFilename, delimiter=',', autstrip=True)

この質問を見つけました

Python でフィールド内にコンマを含む CSV ファイルを読み取る

numpyしかし、それは私が本当に使いたいと思っている を使用しません。したがって、ここにいくつかのオプションのうち少なくとも1つがあることを願っています。

  1. numpy.recfromcsv(...)複数のカンマ区切りフィールドではなく、引用符で囲まれたフィールドを 1 つのフィールドとして読み取るためのオプションは何ですか?
  2. CSV ファイルを別の形式にする必要がありますか?
  3. (代わりに、しかし理想的ではありません)numpy配列を作成するための追加の手順を使用して、引用された質問のようにCSVを読み取ります。

お知らせ下さい。

4

3 に答える 3

2

pandasでこれを行うことができます:

np_array = pandas.io.parsers.read_csv("file_with_comma_fields_quoted.csv").as_matrix()
于 2013-02-12T14:42:55.327 に答える
1

ネイティブの Python csv リーダーの使用を検討している場合は、Python doc をここに示します。

Python csv リーダーは、いくつかのオプションDialect.quotecharオプションを定義します。デフォルトは'"'です。csv 形式の標準では、quotechar は別のフィールド区切り記号であり、区切り記号 (この場合はカンマ) が引用されたフィールドに含まれる場合があります。csv 形式で文字を引用するための規則は、このページの最初のセクションで明確にされています。

したがって、デフォルトの引用文字を にすると"、ネイティブの Python csv リーダーがデフォルト モードで問題を管理しているようです。

Python に固執したい場合は、最初に csv ファイルをクリーンアップして、正規表現を使用して引用符で囲まれたフィールドを識別し、区切り文字をコンマから\tたとえばに変更してみませんか。しかし、ここでは実際に csv 形式を自分で解析しています。

于 2013-01-21T20:15:50.260 に答える
0

これを行う最も簡単な方法は、標準ライブラリ モジュールを使用csvしてファイルをタプルに読み込み、そのタプルを numpy 配列への入力として使用することです。numpyで読み込めたらいいのにと思いますが、うまくいかないようです。

于 2013-01-21T21:45:09.040 に答える