見出し画像

PythonでCSV! - 便利に使おう!

いろんなデータを集計する場合にPythonは大活躍!基本のCSVの操作をColabでいろいろ試しながらまとめます。

CSVってどんなものかというと

郵便番号がCSVで公開されているのでダウンロードして開いてみましょう。MacであればNumbers、Winであればエクセルのような表計算ソフトで開くと見やすい形で表示されます。本当はMacであればTextEdit、Winであればメモ帳のようなテキストエディタでも開けます。

表計算ソフト

テキストエディタ

CSVの正体は","コンマで区切られたテキストファイルです。なのでかなりデータ容量も少なく保存、使用でき大量のデータでもダウンロードもすぐ終わります。。

CSVファイルをColabで読み込んでみます。

Colabにデータをアップロードして、

with open('JIGYOSYO.CSV') as f:
    print(f.read())

とすると、エラーが出ます。

テキストエンコードを"UTF-8"に変更して実行してみると、これもエラーが出てしまいました。そこで少しデータを減らして実行するとうまく読み込み出力されます。Colabで実行する時データが多すぎるとエラーが出るようです。

あとはこのデータを抽出してみます。

ライブラリなし

ライブラリなしで3列目のデータを抽出してみます。

with open("JIGYOSYO.CSV", "r", encoding="utf-8") as f:
    for i, row in enumerate(f):
        row = row.split(",")
        num = row[2].rstrip()
        print(num)

row = row.split(",")
  num = row[2].rstrip()

このコードで3列目、配列ではインデックスは"0,1,2"となていて3列目は"2"となります。

実行すると

"株式会社 日本経済新聞社 札幌支社" "一般財団法人 札幌市交通事業振興公社" "伊藤組土建 (株)" "伊藤忠商事 株式会社 北海道支社" "医療法人 医仁会 中村記念病院"

csvライブラリー

import csv

with open("JIGYOSYO.CSV", "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row[2])

"csv"ライブラリを使います。

reader = csv.reader(f)
for row in reader:

でデータを取り出します。実行すると

株式会社 日本経済新聞社 札幌支社
一般財団法人 札幌市交通事業振興公社
伊藤組土建 (株)
伊藤忠商事 株式会社 北海道支社
医療法人 医仁会 中村記念病院

pandas

import pandas as pd

df = pd.read_csv("JIGYOSYO.CSV", encoding="utf-8")

df

これを実行すると

と表形式で表示することができるようになります。見た目にも扱いやすくなています。

列には列名が、行には行名(インデックス)が付けられており、それぞれの列名や行名を指定してデータを取得し、集計や加工に利用することができます。

https://ai-inter1.com/pandas-dataframe_basic/


参考サイト




この記事が気に入ったらサポートをしてみませんか?