pandas基本

http://www.atmarkit.co.jp/ait/articles/1802/13/news012.html

import pandas as pd
import numpy as np

dow = pd.read_csv("xxxx.csv", index_col=0)

# データの冒頭の部分だけを表示
dow.head()

type(dow)

# 簡単な統計情報を見る「describe」メソッド
dow.describe()

dow_open = dow["Open"]

dow_open.head()

type(dow_open)

# DataFrame型から複数の列を取り出す
dow_high_low = dow[["High", "Low"]]
dow_high_low.head()

# 条件による行の抽出
dow[dow["High"] > 24000]


np.random.seed(0)
df = pd.DataFrame(np.random.rand(8, 4), columns=["A", "B", "C", "D"])
df

# ラベルによる指定の「loc」メソッド
df.loc[3:5, ["B", "C"]]

# 位置による指定の「iloc」メソッド
df.iloc[3:5, 1:3]

# データの加工
df["E"] = df["C"] + df["D"]
df

df["A"] = df["B"] * 2
df

# ラベル指定して1つのセルを書き換える「at」メソッド
df.at[1, "A"] = -1
df

# 位置を指定して1つのセルを書き換える「iat」メソッド
df.iat[2, 0] = -1
df

# 欠損値の処理
df["F"] = [1, None, None, 1, None, None, None, None]
df

# 欠損値を無視する「dropna」メソッド
df.dropna()

# 欠損値を特定の値で書き換える「fillna」メソッド
df.fillna(value=0)

df

# 集計演算
## データの平均値を求める「mean」メソッド
df.mean()

## データの標準偏差を求める「std」メソッド
df.std()

## 任意の関数を適用する「apply」メソッド
df.apply(lambda x: x.max() - x.min())

# グループ化
df["G"] = ["X", "X", "Y", "Y", "Z", "X", "Z", "Y"]
df

## グループ化し集計
gr = df.groupby("G")
gr.sum()

# キーをインデックスとして扱いたくないときは、「as_index」フラグ
gr = df.groupby("G", as_index=False)
gr.mean()

# データの連結・結合
df1 = pd.DataFrame(np.random.rand(3, 3), columns=["A", "B", "C"])
df1

df2 = pd.DataFrame(np.random.rand(3, 3), columns=["A", "B", "C"])
df2

# 縦に連結する「concat」メソッド
df3 = pd.concat([df1, df2])
df3

# インデックスを振り直す「reset_index」メソッド
df3.reset_index(drop=True)

df1["D"] = ["A", "B", "D"]
df2["D"] = ["A", "B", "C"]

df1

df2

# 横に連結する「merge」メソッド
pd.merge(df1, df2, on="D")

# 外部結合
pd.merge(df1, df2, how="left", on="D")

# 配列型への変換 valuesプロパティ
df3.loc[:, ["A", "B", "C"]].values