こんにちは、まゆみです。
Pandasについて記事をシリーズで書いています
今回は第5回目になります。
前回までは色々と基礎的な事を語ってきました。
今回は実際リアルなデータを使って、Pandas の便利な機能を見ていきましょう
data.worldさんのサイトからcsvファイルのデータを使わせていただきます!
今回は、あの有名な『タイタニック号』に関するデータを引っ張ってきました。
今回使わせていただくのは下記のようなCSVファイルデータになります
ずらっと数字やテキストが並んで少し見にくいですね。
このデータをPandas のread_csv メソッドを利用してDataFrame として読み込みます
※DataFrame とSeries の違いが分からない人はこちらの記事のPandasのSeriesとは?という項目を読んでくださいね。
Pandas のread_csv メソッドでCSVファイルを読み込むとどのように表してくれるでしょうか?
CSVデータの一番上の赤線の部分は、Pandasのread_csv メソッドで読み込むとコラム欄として勝手に認識してくれます。
import pandas as pd
pd.read_csv("ファイル名")
上記のコードを実行した結果がその下にあるスクリーンショットになります。
綺麗にフォーマットされました。
一番下には、データの大きさが記載されます
今回のデータは1309行、14コラムになります。
データの途中にある
・・・
は途中にあるデータは端折って表示してますよということを意味しています
read_csv() はcsvを『DataFrame』として読み込むのでSeries として使いたい時はさらに加工が必要です。
DataFrame はエクセルシートで言えばページ全体を
Series は1コラムのみを
指します。
今回のデータでは、タイタニック号事件で亡くなったか生存できたかのデータのみを取っていきましょう
Shift +Tab
usecols というパラメーターをファイル名の次に足して書きます。
usecols はuse columns の略でして、どのコラムを使うか?という意味です。
今回使いたいコラム名は『survived』の欄なので
pd.read_csv("titanic.csv", usecols= ["survived"])
と書き足しましょう
##1コラムだけ取り出したDataFrameをSeries にする
翻訳:解析したデータに1つのコラムしか含まれていない場合、Seriesを返す
DataFrame から1コラムだけ取り出したものをSeries に変える『squeeze』をパラメーターとして書き足して下さい。
ディフォルト値はFalse なので
pd.read_csv("titanic.csv", usecols=["survived"], squeeze=True)
となります
#亡くなった人と生存者の数を取り出す
ではこのSeries からタイタニック号事件で亡くなった人と生存者の数を調べてみましょう。
survived のコラム欄の
0 が亡くなった人
1 が生存者
になりますので、数を数えてくれるSeries のメソッド
『.value_counts()』を使います
ちゃんと、一致していますね。
#どのメソッドを使えば分からない時
データの数を数えるには『.value_counts()』を使ってくださいと言いましたが、全てのメソッドを覚えることはできません。
ではどのメソッドを使うべきか分からない時、どうしたら良いの?
Google に聞いてみましょう!
1番上の検索結果から当てはまりそうなものを読んで試してみてください。
ちなみに私はプログラミングの勉強と並行して
英語を勉強する
ことを強くおすすめします
最新の情報もつかみやすいですし、英語のまま翻訳されていないドキュメントも多々あります。(pandasの日本語ドキュメントも今の時点ではありません。)
また英語で検索すると、手に入れられる情報量が違います。
#まとめ
今回は
- Pandasのread_csv()メソッドを使う
- DataFrameをSeriesに変える
- Seriesの各アイテム数を数える
ことまでを書かせていただきました。
少しづつですが、またPandasの使い方について書いていきますね。
次回もよろしくお願いします!