次のチュートリアル コラムでは、golang による大きなファイルの効率的な処理_Pandas を使用して大きなファイルを分割して処理する方法を紹介します。 Pandas を使用して大きなファイルをチャンクで処理する問題: 今日、Kuaishou のユーザー データを処理しているときに、約 600M の txt テキストに遭遇しました。sublime で開くとクラッシュしました。 pandas. read_table() で読み取るのに 2 分近くかかりましたが、最終的に開いてみると、約 3,000 万行のデータが見つかりました。まだオープンしたばかりなので、どれだけ大変かわかりません。
、
iterator原理は次のとおりです。ファイルデータは一度にメモリに読み込まれるのではなく、複数回読み込まれます。 1. ファイルをチャンク単位で読み取るためにチャンクサイズを指定する
read_csv と read_table には、チャンク サイズ (毎回読み取る行数) を指定し、反復可能な TextFileReader オブジェクトを返す chunksize パラメーターがあります。
table=pd.read_table(path+'kuaishou.txt',sep='t',chunksize=1000000) for df in table: 对df处理 #如df.drop(columns=['page','video_id'],axis=1,inplace=True) #print(type(df),df.shape)打印看一下信息
2. iterator=True
を指定します。iterator=True は TextFileReader オブジェクトも返します。
reader = pd.read_table('tmp.sv', sep='t', iterator=True) df=reader.get_chunk(10000) #通过get_chunk(size),返回一个size行的块 #接着同样可以对df处理
以上がgolang で大きなファイルを効率的に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。