皆様こんにちは。
今回はPython学習の一環として、Pandasのデータフレームを用いてCSVファイルを操作してみます。
また、インデックス無しでCSVファイルを出力する方法をご紹介します。
Pandasとは?
Pythonのライブラリの一つ。データ解析機能を提供する。
普通に出力してみる
では実際に出力してみます。
今回は環境として、「Google Colaboratory」を使用します。
Google Colaboratory(以下Colab)の使い方についてはこちらをご覧ください。
まず、下記のようなCSVファイルを用意します。
今回は仮としてクラス名簿を想定したファイルとします。
では、この名簿の中から男子生徒のみを抽出し、CSVファイルとして出力してみます。
# Pandasをインポート
import pandas as pd
# 性別が男のみを抽出し csvに出力
df = pd.read_csv('/content/drive/MyDrive/Python学習/CSV/クラス名簿.csv')
maleOnly = df.loc[df.性別 == '男']
filePath = '/content/drive/MyDrive/Python学習/'
maleOnly.to_csv(filePath + '男子のみ.csv')
きちんと男子生徒のみ抽出できているか、データファイルの中身をColab上で確認してみます。
Colabではデータフレームを格納した変数を実行するだけで、Colab上で簡単にデータフレームの中身を確認することができます。
今回の例で言えば、適当なコードセルに変数名の「maleOnly」を記述し実行するだけでOKです。
問題なく抽出できているようなので、次は出力されたCSVファイルを確認してみます。
男子生徒のみに絞れてはいるのですが、せっかく出席番号を割り振っているのにA列にインデックスが挿入されてしまっており、少々邪魔に感じます。
次はインデックス無しで出力してみましょう。
インデックス無しで出力してみる
インデックス無しにする方法は実はとても簡単です。
関数.csv()
の()内でindex
をFalse
に指定するだけでOKです。
コードを下記のように修正します。
# 性別が男性のみを抽出し csvに出力(インデックス無し)
df = pd.read_csv('/content/drive/MyDrive/Python学習/CSV/クラス名簿.csv')
maleOnly = df.loc[df.性別 == '男']
filePath = '/content/drive/MyDrive/Python学習/'
maleOnly.to_csv(filePath + '男子のみインデックス無し.csv', index = False)
データフレームの中身を確認してみます。
Colab上では特に変化はありませんね。
続いてCSVファイルを確認してみます。
きちんとインデックス無しで出力できていることが確認できました。
まとめ
いかがだったでしょうか?
私ははじめ、CSVファイルからインデックスを削除する方法に辿り着くためにかなり四苦八苦してしまい、ググる力を磨いていかなければと痛感しました……。
自分の実現したい操作が、調べてみたら実はめちゃくちゃ簡単だったというのはプログラミング学習あるあるだと思います。
少しでも皆様の参考になれば幸いです。