9

400列のcsvファイルがあるとします。ファイル全体をDataFrameにロードできません(メモリに収まりません)。ただし、実際には50列しか必要ないので、これはメモリに収まります。これを行うための組み込みのPandasの方法は見当たりません。何を指示してるんですか?私はPyTablesインターフェースを使用することにオープンです、またはpandas.io.sql

最良のシナリオは、次のような関数になります pandas.read_csv(...., columns=['name', 'age',...,'income'])。つまり、ロードされる列名(または番号)のリストを渡します。

4

2 に答える 2

30

イアン、usecolsあなたが説明したことを正確に行うオプションを実装しました。これは、次の pandas 0.10 に含まれます。開発版は近日公開予定です。


以来、次のよう0.10に使用できますusecols

df = pd.read_csv(...., usecols=['name', 'age',..., 'income'])
于 2012-11-10T05:41:17.987 に答える
2

現在、これを行うデフォルトの方法はありません。ファイルをチャンクして繰り返し処理し、不要な列を破棄することをお勧めします。だから何かpd.concat([x.ix[:, cols_to_keep] for x in pd.read_csv(..., chunksize=200)])

于 2012-11-05T16:30:58.537 に答える