Pandas
Numpyを基盤にSeriesとDateFrameというデータ型を提供。
※Series:1次元データ
※DateFrame:2次元データ。1列の中に整数や文字列が混在している場合はデータ型がオブジェクトとなる。その場合は数値計算はできない。
用語
head():先頭を表示※デフォルトは5行
tail():末尾を表示※デフォルトは5行
.shape:DateFrameのサイズを取得
.dtypes:各カラムのデータ型の確認 ※dtypeは引数(dtype=”float64″)として使用
df.apply(関数):dfに関数を適用させる
astype():データ型の変換
to_datatime():datetime型に変換
set_index():インデックス(行)に値を設定
sort_values(by=”カラム名”):カラムの並び替え ※デフォルトは昇順
sort_values(by=”カラム名”,ascending=False):降順でのカラムの並び替え
drop():不要なデータの削除
df=df[_]:True行のみの抽出
concat関数:2つのデータフレームを連結。
※axis=0:行方向への連結
axis=1:列方向への連結
行列の順序は一方しか保持できない
df.values:Numpy配列に変換。インデックス、カラム名は保持されない。
データ抽出
→df[“A”]=1列のみの抽出 ※df.loc[:,”A”]、df.iloc[:,0]と同じ出力結果。
df[[“A”,”B”]]=複数列の抽出(2重角かっこ) ※df.loc[:,[“A”,”B”]]、df.iloc[:,:2](1:2=1以上2未満)と同じ出力結果
条件付き
df[“歩数”]>=10000=True or Falseで各行が返される
df[df[“歩数”]>=10000]=Trueの行のみ抽出される
ファイルの読み書き
CSVファイル
→read_csv:CSVファイルの読み込み
to_csv:CSVファイルの書き込み
Excelファイル
→read_excel:CSVファイルの読み込み
to_excel:CSVファイルの書き込み
WebサイトのHTMLの表:WebサイトのHTML内にあるtable要素を抜き出す。複数にも対応。
→read_html:WebサイトのHTMLの表の読み込み
pickleモジュール:Pythonのオブジェクトをシリアライズ(直列化)してファイルで読み書き(保存)
pandas、バイナリファイルをそのまま保存できる。
→read_pickle:バイナルファイル、pickle形式に直列化されたデータの読み込み
to_pickle:バイナルファイル、Pythonオブジェクトを直列化し書き込み
時系列データ
date_range(start=”2017-04-01″,end=”2017-04-30″):1ヶ月分のデータを作る
date_range(start=”2017-01-01″,periods=365):1年分365日のデータを作る
df.groupby(pd.Grouper(freq=’M’).mean():月平均のデータを作る
Grouperオブジェクト
→pd.Grouper(freq=‘W-SAT’).sum():土曜日ごとにグルーピング
‘M’:月末集計
‘Q’:四半期集計
‘W’:週末(日曜)集計
‘W-Mon’:週(日〜月曜まで)集計
欠損値処理
dropna:欠損値のある行を削除
fillnaメソッド:欠損値補完
fillna(0):欠損値を0で補完
fillna(method=’ffill’):欠損値を1つ前方の値で補完 ※f=forward
fillna(method=’bfill’):欠損値を1つ後方の値で補完 ※b=back
fillna(df.mean()):欠損値を平均値で補完
fillna(df.median()):欠損値を中央値で補完
fillna(df.mode().iloc[0,:]):欠損値を最頻値で補完
基本統計量のメソッド
max():最大値を取得
min():最小値を取得
mode():最頻値を取得
median():中央値を取得
str():標準偏差を取得
※母集団の標準偏差を取得する場合は引数にddof=0を指定。デフォルトはddof=1。
count():データの個数を取得
corr():相関係数を取得
describe():統計量をまとめて取得
引数→include:結果を含める場合
exclude:結果を含める場合
出力される項目
count:要素の個数
mean:算術平均
std:標準偏差
min:最小値
max:最大値
50%:中央値
25%,75%:1/4分位数、3/4分位数
散布図行列の出力
→%matplotlib inline
from pandas.plotting import scatter_matrix
_=scatter_matrix(df)
コメント