Chapter 11

【2回目】Pandasでできること

poclabweb
poclabweb
2022.10.26に更新

事前にデータの形状を確認して、データを整理することで、データをわかりやすくする方法を学んでいきます。

講義動画

https://vimeo.com/showcase/8854107

今回のアウトライン

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()などでエクセル形式で出力できる。