PythonでのCSVファイルを読み込む方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonでのCSVファイルを読み込む方法について現役エンジニアが解説しています。CSVファイルとは値をコンマで区切ったテキスト形式のファイルのことです。PythonでCSVを扱うには、CSVモジュールをインポートして使います。CSVライブラリの書き方や使い方について解説します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
清水 源一郎
テックアカデミーでは、Pythonコース、AIコース、データサイエンスコースを担当。
PythonでのCSVファイルを読み込む方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
PythonでのCSVファイルを読み込む方法について詳しく説明していくね!
お願いします!
CSVファイルの特徴
CSVは、comma-separated valuesの略で、値をカンマで区切ったテキスト形式のファイルです。
Excelなどの表計算ソフトでCSVを扱うと、カンマで区切られた部分を1つのセルの値として扱えます。
表計算ソフトやデータベースでのデータの入出力に頻繁に使用される形式です。
シンプルかつ便利なので、よく見かけることになるでしょう。
具体例を見てみましょう。
CSVファイルの中身は以下のように記述します。
code, num
AA1645836, 10000,,XY
BB2245847, 010000,, ZZ
CCC5870, 010000, K, K,,, Y
上の内容が記載されたCSVファイルをExcelで開くと以下の通りです。
今回はPythonでCSVファイルを処理してみましょう。
Pythonで扱うことで、CSVファイルでの処理の自動化などができます。
CSVファイルを扱う際の注意点
CSVは各アプリの出力によって、細かい違いが発生する場合があります。
カンマ区切りが基本ですが、タブやスペースなど他のデリミタで区切る形式でもCSV(character separated values)と呼ぶ場合があります。
CSVモジュールの使い方
PythonでのCSVの扱い方について説明します。
PythonにはCSVを扱うためのCSVモジュールが標準で備わっています。
Pythonに初めから存在しているので、新たにpipなどでinstallは不要です。
CSVはテキスト形式なのですが、テキストとして扱うよりも、CSVの扱いに特化したこのモジュールを使用した方が便利です。
使う際には以下のコードのように、まずモジュールをインポートしましょう。
import csv
まずはCSVファイルを読み込んでみましょう。
以下のコードのようにファイル名を指定し、読み込みモード’r’でopenで開きます。
openで開いたファイルは、後にcloseするのを忘れないように注意しましょう。
csvfile = open(ファイル名, 'r')
CSVの読み込みにはreader()を使用します。
次のように、openで開いたファイルを指定してreaderのインスタンスを生成します。
reader = csv.reader(csvfile)
このインスタンスに以下のようにfor文を使って処理することで、読み込んだCSVの内容を1行ずつ取得できます。
for row in reader:
print(row)など各行に関する処理
実際に書いてみよう
PythonでCSVを読み込む具体的なコード例を見ていきましょう。
CSVの内容を1行ずつ表示するコードを扱います。
新しいテキストファイルを開き、先ほどの例の下記の文字を入力して、datasheet.csvという名前で保存してください。
code, num
AA1645836, 10000,,XY
BB2245847, 010000,, ZZ
CCC5870, 010000, K, K,,, Y
datasheet.csvと同じディレクトリで下記のコードを実行してみてください。
これまでに説明したように、csvfileを読み込み、readerクラスのインスタンスを生成しています。
for row in gotdata
でCSVの内容を1行ずつリストとして取得しています。
元のファイルで、カンマで区切られた値がリストの要素です。
print(row)で読み込んだ1行ごとの内容を表示しています。
for value in row:
で読み込んだ各行のリストから、元のファイルでカンマで区切られていた1つ1つの値を取り出しています。
ソースコード
import csv
csvfile = open('datasheet.csv', 'r')
gotdata = csv.reader(csvfile)
for row in gotdata:
#各行の内容の表示
print(row)
#各値の表示
for value in row:
print(value)
csvfile.close()
実行結果
['code', ' num '] code num ['AA1645836', ' 10000', '', 'XY'] AA1645836 10000 XY ['BB2245847', ' 010000', '', ' ZZ'] BB2245847 010000 ZZ ['CCC5870', ' 010000', ' K', ' K', '', '', ' Y'] CCC5870 010000 K K Y
まとめ
CSV形式のファイルは業務などでプログラミングを行う場合、避けて通れないほど頻出します。
ぜひ基本操作をマスターしましょう。
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!