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を活用できるように学習していきましょう。

目次

1時間でできる無料体験!

そもそも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] Pythonで挫折しない学習方法を動画で公開中

実際に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で用意したデータがきれいに生成されていることがわかります。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

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

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

 

執筆してくれたメンター

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

1時間でできる無料体験!

Pythonを学習中の方へ

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

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

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

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

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

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する