このチャプターの目次
事前にデータの形状を確認して、データを整理することで、データをわかりやすくする方法を学んでいきます。
講義動画
今回のアウトライン
0. モジュールのimportする
pandasは、pdで略すことが多い
import pandas as pd
1. Pythonのバージョン確認、データの読み込み
csvからデータを読み込む
df = pd.read_csv()
2. データの確認
読み込んだ先頭のデータを確認する
df.head()
3. 簡単にデータの状態を確認する(行数列数カウント・データの選択的表示・重複の有無など)
行数・列数を取得する
df.shape()
列名を取得する
df.columns
count,mean,std,min,25%,50%,75%,maxという統計量を表示
# デフォルトでは数値(整数型int、浮動小数点型float)の列のみが選択される。
df.describe()
# include='all'とすると、すべての型の列が対象となる。
df.describe(include='all')
4. データの欠損状態の確認
欠損値があるかを確認
df.isnull()
any()は行・列ごとにTrueがひとつでもあればTrueと判定
df.isnull().any()
5. 値(欠損)の置き換えや削除
欠損値の置換
df.fillna()
欠損値を有するものを削除
df.dropna()
値を置き換える。
df.replace()
6. 新しいdfの作成
任意の列だけ取り出して新しいdfにする。
df2 = df[['smiles', 'formula']]
特定の dfどうしを結合して、新しいdfにする。
df23 = pd.merge(df2, df23)
7. データの処理(mapとapply)
pandasオブジェクトのメソッドで関数を適用
df.map()
df.apply()
8. 変数の前処理(one-hot表現)
データ型dtypeがobject(おもに文字列)またはcategoryである列がすべてダミー変数化
pd.get_dummies()
9. 集計と重複処理
並び替え
df.sort_values()
ユニークな要素の個数を整数int型で返す
df.nunique()
smilesで重複している様子を確認
df["smiles"].duplicated(keep=False)
手動で、行番号で削除して上書き
df = df.drop(df.index[[300]])
"smiles"が重複しているものを削除してdfを上書き。最初に出てきたものが維持されて、あとに出てくるものが削除される。
df = df.drop_duplicates(subset='smiles')
10. 可視化
散布図を作成できる。
df.plot()
11. データの出力
出来たデータを出力して保存
df.to_csv()
ほかにもto_excel()などでエクセル形式で出力できる。