Pandasの基礎
PandasとはPythonでデータ分析を効率的に行うためのライブラリで、数値データや文字列データを扱うことができるため、データを適切に把握して、不要なデータを取り除いたり必要なデータを精査する前処理を効率的にすることに適している。
データ構造
PandasはSeries, DataFrameの二種類のデータ構造がある。
一次元の配列をSeries
・DataFrameの行もしくは列として捉えることができる
二次元のテーブルをDataFrame
・横方向のデータを行(インデックス)、縦方向のデータを列(カラム)と呼ぶ。
Pandas公式ドキュメント
https://pandas.pydata.org
pandasのインポート
#pandasはpdとしてimportされる import pandas as pd
pandasの操作
kaggleのTitanicのデータセットを使ってPandasの操作を行う。
Titanic: Machine Learning from Disaster
https://www.kaggle.com/c/titanic/data
#read_csvでTitanicのデータを読み込む df = pd.read_csv('train.csv')
#headで先頭5行のデータを確認 df.head()
#最後尾の5行のデータを確認 df.tail()
#読み込んだデータがどんなものなのか概要を掴む print('dataframeの行数,列数の確認: \n', df.shape) print() print('indexの確認:\n', df.index) print() print('カラムの確認:\n', df.columns) print() print('dataframeの各列のデータ型,欠損値を確認: \n', df.info()) #行数891(インデックスは0から890)、列数は12、dtype(データ型)はint64、float64、object型、各列の列名などが確認できる
describeで各列の要約統計量(平均、標準偏差など)を取得
#データの雰囲気を掴むのにとても便利 df.describe() #順番に個数、平均値、標準偏差、最小値、四分位数、最大値
対象となる型を指定する(include, exclude)
数値型以外の列に対してようやく統計量を取得するには、引数include, excludeを設定する。
include :結果に含める型
exclude :結果から除外する型
※列名ではなく型を指定する
#数値データとオブジェクトデータに関する情報を合わせて表示 df.describe(include = 'all')
#引数にinclude=['O']を指定することで、オブジェクト型(str型など)に関する情報を表示。 #表示される情報は上から順番にデータ数(count)、重複を排除したデータ数(unique)、最も多く含まれるデータ(top)、そのデータが含まれる個数(freq) df.describe(include=['O'])
グループ化
グループ化はある特定の列について同じ値を持つ行を集約すること。
DataFrame型の変数dfに対して
df.groupby(‘カラム’)
groupbyオブジェクトに対してmean()や、sum()など演算を行うことができる。
#Pclassでグループ化 #as_index = Falseを指定すると、indexとして扱うのをやめてくれる #sort_values(by = '列名')で要素の値に応じてソートする #昇順、降順を指定する場合、デフォルトは昇順、降順にする場合はascendingをFalseにする。 df[['Pclass', 'Survived']].groupby(['Pclass'], as_index = False).mean().sort_values(by = 'Survived', ascending = False)
コメント