オーダーメイドコース
icon
icon

PythonでCSVファイルを作成する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでCSVファイルを作成する方法について現役エンジニアが解説しています。CSVファイルとは、データを「, 」(コンマ)で区切って保存するファイル形式のことです。Pythonではcsvモジュールを使います。読み込みではreader、書き込みではwriterowメソッドを使います。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

PythonでCSVファイルを作成する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

CSVファイルとは、Comma Separated Valueの略です。

Comma Separated Valueというのは、カンマで(Comma)区切った(Separated)値(Value)という意味です。

例えば、Excelのデータも、カンマで区切ったデータです。

そのため、CSVファイルはExcelで利用できます。

つまり、ExcelのデータはCSVファイルとして利用することが可能だということです。

注意点としては、Excelファイルにあるデータすべてを、1つのCSVファイルとして利用できないことです。

Excelファイルの1シートずつをCSVファイルに変換します。

CSVファイルは、Excelだけでなく、ACCESSやMySQLなどのデータベースアプリケーション、そしてメモ帳でも使用できます。

PythonでCSVファイルを作成できるということは、様々なアプリケーションで利用可能なCSVファイルを自動処理することができるようになるということです。

この記事を機に、現在の実務でもPythonを活用できるように学習していきましょう。

目次

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでCSVファイルを作成する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

CSVファイルの特徴と作成時の注意点

CSVファイルとは、Comma Separated Valueの略称を指し、データを「, 」(カンマ)で区切ってデータを保存するファイル形式のことです。

下記は、実際の具体的なCSVファイルのデータです。

青森,apple,120
山形,cherry,50
栃木,strawberry,90
岡山,peach,350
愛媛,orange,100
沖縄,pineapple,200

CSVファイルのデータは、「何県のどの果物が1個あたり何円で売られているのか」といった情報をまとめたものです。

CSVファイルを使えば、簡単に情報を管理できます。

 

CSVモジュールの使い方

PythonでCSVファイルを扱うには、最初にCSVモジュールをimportする必要があります。

Importのやり方は非常に簡単で、以下のように実施します。

import csv

 

次に、CSVファイルの読み込み方について見ていきましょう。

既存のファイル名を指定し、読み込み用のオープンモードでopenします。

CSVファイルの読み込みにはreader()というメソッドを使用し、リーダーというインスタンスを生成することが可能です。

リーダーに対してfor文を使うと、読み込んだCSVファイルの各行を取得できます。

また、さらにfor文を使った場合、1行内の各列の要素についても取得できます。

 

以下が実際にCSVファイルを読み込む際のコード例です。

コード

import csv
file = open('fruits.csv', 'r')
data = csv.reader(file)
for row in data:
    for col in row:
        print(col, end=',')
    print()
file.close()

 

解説

1行目のimport csvでは、CSVファイルを利用するためのライブラリをインポートしています。

2行目のfile = open(‘fruits.csv’, ‘r’)では、fruits.csvという名前のCSVファイルをrという指定で読み込むためにopenメソッドで開いています。

その後、開いた内容をfileオブジェクトに代入しています。

fileには次のようなデータが入っています。

青森,apple,120 
山形,cherry,50 
栃木,strawberry,90 
岡山,peach,350 
愛媛,orange,100 
沖縄,pineapple,200

3行目のdata = csv.reader(file)では、2行目で用意したfileオブジェクトの内容を、csv.reader()というメソッドを利用して反復処理してdataオブジェクトに代入しています。

dataオブジェクトには次のような配列データが入っています。

['青森', 'apple', '120'] ['山形', 'cherry', '50'] ['栃木', 'strawberry', '90'] ['岡山', 'peach', '350'] ['愛媛', 'orange', '100'] ['沖縄', 'pineapple', '200']

4行目のfor row in data:では、3行目で用意した配列が入っているdataオブジェクトの内容を、rowオブジェクトに1つずつ取り出します。

例えば、最初に取り出した配列は次のデータです。

['青森', 'apple', '120']

5行目のfor col in row:では、rowの配列データの中身を1つずつ取り出して変数colに代入しています。

例えば、最初に取り出した値は次のデータです。

'青森'

6行目のprint(col, end=’,’)では、変数colの内容を表示しつつ、end=’,’で改行をなくして「 , 」を追加しています。

7行目のprint()では、改行を作っています。

もし7行目のprint()がない場合、最終的な表示結果は次のようになります。

青森,apple,120,山形,cherry,50,栃木,strawberry,90,岡山,peach,350,愛媛,orange,100,沖縄,pineapple,200,

8行目のfile.close()では、2行目で開いたファイルを閉じています。

最終的には次のような表示結果になります。

 

表示結果

青森,apple,120,
山形,cherry,50,
栃木,strawberry,90,
岡山,peach,350,
愛媛,orange,100,
沖縄,pineapple,200,

 

 

[PR] 未経験からWebエンジニアを目指す方法とは

実際にCSVファイルを作成してみましょう

ここでは、CSVファイルを作成していきます。

CSVファイルを新たに作成する場合は、作成するファイル名を指定して書き込み用のオープンモードでopenしましょう。

CSVファイルに書き込む際にはwriter関数を用います。

これによってライターと呼ばれるインスタンスを生成し、ライターのwriterow()やwriterows()というメソッドを使って行を追加していきます。

writerow()では1行のみ、writerows()では複数行を書き込むことが可能です。

 

以下が実際にCSVファイルを書き込む際のコード例です。

コード

import csv
header = ['ID', 'num']
body = [
        ['cherry',50], 
        ['strawberry',90], 
        ['peach',350], 
       ]

with open('sample.csv', 'w') as f:
 
  writer = csv.writer(f)
  writer.writerow(header)
  writer.writerows(body)

f.close()

 

解説

1行目のimport csvでは、CSVファイルを利用するためのライブラリをインポートしています。

2行目のheader = [‘ID’, ‘num’]では、header配列にデータを代入しています。

3行目のbody = [ [‘cherry’,50], [‘strawberry’,90], [‘peach’,350], ]では、body配列にデータを代入しています。

4行目のwith open(‘sample.csv’, ‘w’) as f:では、sample.csvというファイルを書き込みで開いてfというオブジェクトで利用できるようにします。

5行目の writer = csv.writer(f)では、writerオブジェクトにfオブジェクトを書き込むための準備をして代入しています。

6行目のwriter.writerow(header)では、headerオブジェクトの内容を1行だけ書き込んでいます。

7行目のwriter.writerows(body)では、bodyオブジェクトの内容を複数行書き込んでいます。

8行目のf.close()では、ファイルを閉じています。

 

実行結果

実行結果はsample.csvというファイルが作成されます。

sample.csvを開くと、headerとbodyで用意したデータがきれいに生成されていることがわかります。

 

まとめ

この記事では、PythonでのCSVファイルの扱い方について解説しました。

CSVファイルは多くのデータを扱うときにわりとよく用いるため、読み込み・書き込みといった基本操作の仕方についてマスターしておきましょう。

 

執筆してくれたメンター

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバ下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。ノーコードチャットアプリリリース、小学生がオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programming Festival入賞などボランティアで地域の職業プログラマー育成活動も行っている。

 

大石ゆかり

PythonでCSVファイルを作成する方法がよく分かったので、良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

Pythonを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!