mygems

1GBのCSVファイルを開く方法 (2026 guide)

1GBのCSVを開けるツール、必要なRAM、黙って切り捨てるツールを比較します。

執筆: uos ·

1GBのCSVは、ごく普通の表形式データで500万〜1,000万行ほどになります。大事なのはGB数よりこの行数です。スプレッドシート1枚に収まる行数のすでに5倍で、まず「Excelで開く」という選択肢は最初から無かったと受け入れる必要があります。

何が選択肢に残るかは、ひとつの問いで決まります。ファイルを眺めたいのか、それともファイルから答えを引き出したいのか。

  • 答えが欲しい(合計、絞り込み、結合、重複の件数など): DuckDB。コマンド1つ、10秒、インポート不要です。
  • 眺めたい(スクロール、検索、データの形を把握): ストリーミングで読むビューアを使います。Windowsなら EmEditor、どこでも使えるのは less、ファイルがスマホにあるならスマホアプリです。
  • 編集して保存し直したい: いちばん難しく、良い答えがいちばん少ないケースです。後述します。

比較表

時間は、約800万行・1GBのファイルを、SSD搭載・メモリ16GBの普通のノートPCで開いた場合の目安です。ベンチマークではありません。列の内容やディスクによって変わります。変わらないのは最後の列です。

ツール1GBを開ける?最初の行が出るまでピークRAM費用
Excel不可 — 上限1,048,576行——有料
Excel + Power Query可(読み込みステップとして)数分高い有料
Google スプレッドシート不可 — 1,000万セル、アップロードは約100MB——無料
Numbers不可 — 100万行、その前に重くなる——無料
DuckDB可約1秒約200MB無料
Python + pandas可(chunksize を使えば)30秒以上素朴に使うと5〜10GB無料
Python + Polars可約5秒約1.5GB無料
EmEditor(Windows)可、余裕で約5秒低い有料
VS Code厳しい30秒以上高い無料
less / head / awk可即時ほぼ0無料
OpenRefine可(遅い)数分高い無料
スマホのCSVアプリ可(対応して作られていれば)数秒自動管理無料枠あり

この中の2つは罠です。Google スプレッドシートは1,000万セルと謳っていて近そうに聞こえますが、20列のファイルなら50万行で上限に達しますし、その前にアップロード制限で止まります。pandas はファイルを開いてはくれますが、テキスト列をすべてPythonオブジェクトとして持つため、ファイルサイズの8倍のRAMを使います。「開けたけれどスワップが暴れてノートPCが固まった」という報告の正体はこれです。

目的別のやり方

答えが欲しいとき

DuckDB一択です。

duckdb -c "SELECT region, COUNT(*), SUM(amount) FROM 'big.csv' GROUP BY region"

ファイルを並列に読み、読み込むのではなくストリーミングで処理し、クエリの作業領域をほとんど超えてメモリを確保しません。800万行に対するGROUP BYも数秒で終わります。型の上書き、2つのファイルの結合、結果の書き出しまで含めた詳しい手順は、データベースなしでCSVにSQLを実行する方法にあります。

Pythonで済ませたいなら、scan_csv を使う Polars(遅延評価で、読む前にクエリ全体を計画します)か、chunksize と dtype の指定を明示した pandas を使ってください。素朴な pd.read_csv('big.csv') は避けるべきです。

眺めたいとき

Windowsなら EmEditor。 大きなファイルを扱えるエディタとして唯一しっかり耐えられ、数GBのCSVをソートやフィルタ付きのグリッドで開けます。有料ですが、この問題が繰り返し起こるなら元は取れます。

どこでもシェル。 大きなファイルと向き合う最初の5分間では、過小評価されがちです。

head -5 big.csv                 # what are the columns
wc -l big.csv                   # how many rows really
awk -F, 'NR<=1000' big.csv > sample.csv   # a slice you can open normally
less -S big.csv                 # scroll it, no line wrapping

1,000行のサンプルを作ってそれを Excel で開けば、ファイル全体を開くどのツールより早く「中身は何か」が分かります。

VS Code も Notepad++ も向きません。 どちらもファイル全体をテキストとしてメモリに読み込みます。開くことは開けますが、遅く、警告が出て、最後に使える表ビューもありません。

ファイルがスマホにあるとき

1GBはここでは難しいケースです。スマホはノートPCよりRAMが少なく、アプリが保持できる量の制限も厳しいからです。スマホで1GBをまるごと快適に開けるものはないので、そう謳うアプリは信用する前に必ず試してください。スマホアプリが得意なのは、その少し下の範囲です。スマホの表計算アプリが黙って切り捨ててしまう、100〜500MB・数十万行のエクスポートです。

CSV File Viewer - Smart CSViPhone・iPad · Android

大きなファイルを切り捨てずに開き、SQLや普通の言葉でデータに質問できます。スクロールしきれないほど大きなファイルに本当に求めるのは、たいていこれでしょう。iOSとAndroid対応。

できること

大事なファイルをスマホアプリに任せる前に、このページの最後のセクションにある確認をしてください。

編集して保存し直したいとき

「編集」とはファイルを保持して書き戻すことなので、このケースは誠実な答えがいちばん少なくなります。

  • ピンポイントの修正(値を直す、列を削除するなど): DuckDB か awk で新しいファイルを書き出します。対話型ツールより速く、元のファイルも無傷で残ります。
  • Windowsで本格的に対話編集する: EmEditor。
  • それ以外の環境で本格的に対話編集する: 先にファイルを分割します。split -l 1000000 big.csv part_ で表計算ソフトに収まるサイズに分かれますが、あとで結合し直す手間がかかります(cat で結合できますが、繰り返された見出し行は削除してください)。
  • およそ50万行以下なら、スマホのエディタで直接扱えます。
CSV Editor - Smart CSViPhone・iPad

50万行のファイルを表計算のように編集でき、保存時にすべての行が書き戻されます。無料版でも同じです。iOSとiPadOS対応。

できること

問題ごと変換してしまう

ファイルに2回以上触れるなら、CSVとして扱うのをやめましょう。

duckdb -c "COPY (SELECT * FROM 'big.csv') TO 'big.parquet'"

Parquet は列指向で、型があり、圧縮されています。1GBのCSVが100〜200MBになり、数列だけを走査するクエリは5〜20倍速くなり、あれこれ苦労した型もファイルに保存されます。DuckDB、Polars、pandas のどれもそのまま読めます。この記事でいちばん費用対効果の高い10秒です。

ツールが本当に全部開いたかを確認する

大きなCSVを「開く」と言いながら、実は一部だけ開いていて、どこまでかを教えてくれないツールは多くあります。ファイルから結論を出す前に確認してください。

  1. まずツールの外で行数を数えます: wc -l big.csv。見出し行の分を1引きます。
  2. ツールで最終行に移動して、件数を比べます。
  3. 最終行の内容を tail -1 big.csv の出力と比べます。

一致しなければ、そのツールは切り捨てています。そこから出した結論(合計、最大値、「その地域の注文は無い」など)は、画面上では何も分からないまま誤ったものになります。大きなファイルで本当に怖いのは、クラッシュよりもこの黙った切り捨てです。クラッシュは少なくとも正直ですから。

失敗したのが Excel だった場合

混同しやすい、隣り合った2つの問題があります。Excelがファイルを拒否した、または一部しか表示しなかったなら、それは行数の上限です。回避策はExcelで開けない大きなCSVファイルを開く方法で紹介しています。Excelがファイルを開いたあとに固まった、応答しなくなった、落ちたというなら、それは別の原因による別の不具合で、Excelが大きなファイルで落ちる理由で解説しています。

よくある質問

1GBのCSVファイルは何行ですか?
ごく普通の表形式データなら、列数や値の長さによりますが、およそ500万〜1,000万行です。これだけでExcelのワークシートの上限1,048,576行の5倍にあたるため、ファイルサイズより行数のほうが重要になります。
1GBのCSVファイルをいちばん速く開く方法は?
答えを引き出したいなら DuckDB です。ファイルをその場で約1秒でクエリでき、使うRAMも数百MBです。スクロールして眺めたいなら、WindowsではEmEditorがグリッドで開けますし、`less -S` はどこでも使えて即座に起動します。
Excelで1GBのCSVファイルは開けますか?
そのままでは開けません。ワークシートは1,048,576行までで、1GBのCSVは通常その数倍の行があるため、Excelは入る分だけ読み込んで止まります。Power Queryなら全行をシートに載せずに、読み込みと集計のステップとしてファイル全体を処理できますが、これは「開く」のとは別の作業手順です。
なぜ pandas は1GBのCSVを読むのに8GBのRAMを使うのですか?
テキスト列がPythonオブジェクトとして保存され、それぞれにメモリのオーバーヘッドがかかるうえ、read_csv が戻る前に全体のデータフレームをメモリ上に作るからです。dtype の指定と chunksize を渡す、pyarrow エンジンを使う、あるいは scan_csv でクエリを遅延評価して読む量をずっと減らせる Polars に切り替えてください。
ツールがCSVを切り捨てたかどうかはどう確認しますか?
ツールの外で `wc -l` を使って行数を数え、ツール内で最終行に移動して比べます。最終行の内容も `tail -1` と照合してください。黙った切り捨てはクラッシュより危険です。画面から読み取る合計や最大値がすべて、気づかないうちに間違ったものになるからです。
大きなCSVはParquetに変換すべきですか?
2回以上クエリするなら、変換したほうがよいです。DuckDB の COPY コマンド1つで、1GBのCSVが100〜200MBのParquetファイルになり、型付きで列指向になって、走査が5〜20倍速くなります。DuckDB、Polars、pandas のどれもそのまま読み込めます。

uos — CSV Editor と Smart CSV Viewer の開発者。この表のほとんどは自分の都合で実際に計測しました。