Pythonによるデータ分析の教科書(その5)
4.2 pandas
pandasとは、Numpyを基盤にシリーズ(Series)とデータフレーム(Dataframe)というデータ型を使ったデータ分析ツール
・Seiris:1次元データ
import pandas as pd
ser = pd.Seies([10, 20, 30, 40])
?DataFrame:2次元データ
df = dp.DataFrame([10, “a”, True],
[20, “b”, False],
[30, “c”, False],
[40, “d, True]])
・DataFrameの表示
df #行列全体を表示
df.head() #先頭5行のみ表示
df.tail() #末尾5行のみ表示
df.index [“01”, “02”, “03”] #インデックス名(行の項目名)を割り当て
df.columns [“A”, “B”] #カラム名(列の項目名)を割り当て
pd.DataFrame({“A列: [0, 2, 4], “B列: [1, 3, 5]}] #辞書形式でDataFrameを作る
df[“A”] #カラム名を直接指定して抽出
df:[:2] #インデックス値を指定して抽出
df.loc[:, :] #すべてを抽出(コピーでなく参照)、インデックス名・カラム名で抽出
df.iloc[1, 1] #すべてを抽出(コピーでなく参照)、インデックス番号(位置)・カラム番号(位置)で抽出
df.iloc[1:, 1] #すべてを抽出(コピーでなく参照)、インデックスを範囲・カラムを位置で抽出
・データの読み込み・書き込み
・df = df.read_csv(“ファイル名”, encoding=”utf=8″) #CSVファイルの読み込み
・df = df.read_excel(“ファイル名”) #excelファイルの読み込み
・tables = df.read_html(“URL”) #WebサイトのHTML内のtable要素から、直接、DataaFrameni読み込み
・df = tables[n] #インデックス番号nのテーブルを取得
・df.to_csv(“ファイル名”, encoding=”utf=8″) #テーブルデータをCSVファイルに書き出し
・df.to_excel(“ファイル名”) #テーブルデータをCSVファイルに書き出し
・df.to_pickle(“data/write_df.pickle”) #テーブルデータをファイルに書き出し
・df = df.read_pickle(“data/write_df.pickle”) #逆に読み込み
・データの成形
df[カラム名] >= n #カラム名のデータがn以上がどうかを判定、各行がお条件に一致していればtrue、あっていなければFalse
df_selected = df[df[カラム名] >= n] #カラム名のデータがn以上の行のみを抽出
df.query(条件式) #SQL構文のように条件を記載し、抽出できる
df>sort?values(by=”歩数”) #歩数のカラムでの並び変え(昇順)
df = df.drop(“日付”, axis=1) #日付からむの削除
・欠損値処理
df_201705_drop = df_201705.dropns() #dropnsメソッドによる欠陥値の行の削除
・データ連結
concat関数によりデータ連結、axis=1で列方向、axis=0で行方向
・基本統計量
df.loc[:, カラム名].max() #最大値
df.loc[:, カラム名].min() #最小値
df.loc[:, カラム名].mod() #最頻値
df.loc[:, カラム名].mean() #平均値(算術平均)
df.loc[:, カラム名].median() #中央値
df.loc[:, カラム名].std() #標準偏差
df.loc[:, カラム名].count() #件数
・統計量の要約
df.describe() #count、mean、std、min、25%、50%、75%、max を表示
・相関係数
df/corr() #相関係数を出力
・データ変換
df.loc[:, [“カラム名1″、”カラム名2”]].vlues #DataFrameを配列(ndarray)に変換
参考にした書籍
タイトル:Pythontによるデータ分析の教科書
著者:寺田学、辻真吾、鈴木たかのり、福島真太朗
発行所:株式会社 翔泳社
以上