0

を使用して、大きなファイル(~480MB, 5,250,000 records, stock price daily data -dt, o, h, l, c, v, val , adj, fv, sym, code - for about 4,500 instruments)をパンダにロードしようとしていますread_csv。正常に実行され、DataFrame が作成されます。ただし、パネルに変換すると、いくつかの株式の値がかなりずれており、元の csv ファイルの値とはかけ離れています。

次に、でchunksizeパラメーターを使用しようとしread_csv、forループを使用して次のことを行いました。

reader = read_csv("bigfile.csv",index_col=[0,9],parse_dates=True,names=['n1','n2',...,'nn'], chunksize=100000)

new_df = DataFrame(reader.get_chunk(1))

for chunk in reader:
    new_df = concat(new_df, chunk)

これはデータを読み取りますが、次のとおりです。

  1. パネルに変換するときに、同じ誤った値を取得します(編集:)
  2. プレーンよりも時間がかかりread_csvます(イテレータなし)

これを回避する方法はありますか?

編集:問題を反映するように質問を変更しました-データフレームは問題ありませんが、パネルへの変換が問題です。入力csvファイルを分割し、マージしてからパネルに変換してもエラーが発生することがわかりました。マルチインデックスの DataFrame を維持していれば、問題はなく、値は正しく表示されます。

4

2 に答える 2

1

DataFrame to Panel コードでいくつかのバグが修正されました。最新の pandas バージョン (できれば今後の 0.10) で試してみて、まだ問題がある場合はお知らせください。

于 2012-11-28T04:16:54.667 に答える
0

オフになっている特定の値がいくつかわかっている場合は、csv ファイルでそれらの行を具体的に調べることができます。特に方言Sniffer クラスに関しては、のドキュメントcsvもチェックしてください。ファイルがどのように区切られているかを正しく検出する設定を見つけることができる場合があります。

特定の行だけを見たときにエラーが消えることがわかった場合、それはおそらく、どこかに誤った/欠落している改行があり、それが問題を引き起こしていることを意味します.

最後に、正しい/間違った行のパターンが見つからない場合は、csv ファイル内の行のサブセットを (ランダムにまたは別の方法で) 選択してみて、ファイルのサイズが原因でエラーが発生しているかどうかを確認してください (これはありそうもないことだと思いますが、よくわかりません)。

于 2012-08-23T06:53:27.337 に答える