1

pandas データフレームに読み込もうとしている入力ファイルがあります。ファイルは、最初の値の前の空白を含め、スペースで区切られています。「\ W +」正規表現を区切り記号として使用して、read_csvとread_tableの両方を試しました。

data = pd.io.parsers.read_csv('file.txt',names=header,sep="\W+")

彼らは正しい列数を読み取りますが、値自体は完全に偽物です。他の誰かがこれを経験したことがありますか、それとも私はそれを間違って使用していますか

また、ファイルを行row.split()ごとに読み取り、シリーズを作成してデータフレームに追加しようとしましたが、メモリが原因でクラッシュしたようです。

ファイルからデータ フレームを作成するための他のオプションはありますか?

私はパンダv0.11.0、Python 2.7を使用しています

4

2 に答える 2

2

正規表現'\W'は「単語の文字ではない」ことを意味します (「単語の文字」は文字、数字、およびアンダースコアです) 。re docsを参照してください。したがって、奇妙な結果になります。whitespace を使用するつもりだったと思います'\s+'

注:read_csvdelim_whitespace引数 (True に設定できます) を提供しますが、個人的には を使用することを好みます'\s+'

于 2013-08-01T15:39:11.090 に答える
1

あなたのデータがどのように見えるかわからないので、エラーを再現できません。サンプル データをいくつか作成し、正常に動作しましたが、read_csv で正規表現を使用すると面倒な場合があります。セパレーターを指定する場合は、代わりに " " をセパレーターとして使用してください。しかし、まず Andy Hayden の提案を試すことをお勧めします。「delim_whitespace=True」です。それはうまくいきます。

こちらのドキュメントで確認できます: http://pandas.pydata.org/pandas-docs/dev/io.html

于 2013-08-01T15:45:19.443 に答える