私は、大きなcsvファイルから0.18.1 pandasと2.7.10 PythonをWindows(8 Gb RAM)で使用してランダムな行を読み込む問題に直面しました。 。私はアプローチを見Read a small random sample from a big CSV file into a Python data frame で大きなcsvファイル、python、pandasのランダムな行を読む
は、しかし、非常にメモリすなわち、消費し、コードの一部であることを私のPCのために発生しました:
n = 100
s = 10
skip = sorted(rnd.sample(xrange(1, n), n-s))# skip n-s random rows from *.csv
data = pd.read_csv(path, usecols = ['Col1', 'Col2'],
dtype = {'Col1': 'int32', 'Col2':'int32'}, skiprows = skip)
ので、私からいくつかのランダムな行を取りたい場合はファイルだけでなく、100行を考慮しますが、100 000、それはしかし、ファイルからランダムではない行を取って、硬くなり、ほぼ大丈夫です:
skiprows = xrange(100000)
data = pd.read_csv(path, usecols = ['Col1', 'Col2'],
dtype = {'Col1': 'int32', 'Col2':'int32'}, skiprows = skip, nrows = 10000)
Iからランダムに大量の行を読んで対処できる方法そこで質問大きなCSVファイルwi私はcsvファイル全体を読むことができないので、それをチャンクしても、ランダムな行にはっきりと興味があります。 おかげ
私はこの質問に関する議論のほとんどが関連していると思います。要するに、メモリを大量に消費しない大きな解決策はありませんでした。 http://ipackoverflow.com/questions/38039723/splitting-a-large-pandas-dataframe-with-minimal-memory-footprint/38086123#38086123 – Jeff
skiprowsはたくさんのメモリを使用し、チャンクを使って試してみます:http:// stackoverflow.com/questions/36874993/pandas-memory-error-after-a-certain-skiprows-parameter – ayhan
これらのリンクのいずれかに行き、有用である場合は、可能であればそれらをupvoteしてください。 upvoteには15の評判が必要です。あなたは今6を持っています。 – piRSquared