pandasチートシート ※作成中
はじめに
現在pandasのチートシートを作成中です!
※2023年8月27日現在、チートシートはまだまだ作成中です。
これから少しずつ更新していきます。
操作の一部は別記事で詳細を解説していく予定です!
チートシート
データフレーム操作
操作 | 書き方 | 例文 |
---|---|---|
新しい列をデータフレームに追加 | df['new_column'] = value | df['age'] = 25 # 新しい列'age'を追加し、すべての行に25を設定 |
データフレームから指定の列を削除 | del df['column_a'] | del df['age'] # 'age'列を削除 |
特定の値が含まれる行だけを抽出 | df = df[df['column_a'] == 'value'] | df = df[df['gender'] == 'male'] # 'gender'が'male'の行だけを抽出 |
特定の値が含まれる行を除外して抽出 | df = df[df['column_a'] != 'value'] | df = df[df['gender'] != 'male'] # 'gender'が'male'でない行を抽出 |
2つのデータフレームを縦方向に結合 | df1 = pd.concat([df1, df2], axis=1) | result = pd.concat([df1, df2], axis=1) # df1とdf2を縦方向に結合 |
2つのデータフレームを横方向に結合 | df1 = pd.concat([df1, df2], axis=0) | result = pd.concat([df1, df2], axis=0) # df1とdf2を横方向に結合 |
2つのデータフレームをキーを指定して結合 | df1 = pd.merge(df1, df2, on='key_column') | result = pd.merge(students, grades, on='student_id') # 'student_id'をキーとしてstudentsとgradesを結合 |
欠損値
説明 | メソッド | 引数 | 例文 |
---|---|---|---|
欠損値を含む行または列を削除 | dropna() | inplace: Trueにすると破壊的メソッドに変換 axis: 0で行削除・1で列削除 thresh: 欠損値の数を指定(指定した数以上の欠損値を含む場合は削除) |
df.dropna(axis=0, inplace=True) |
欠損値を平均値、中央値、最頻値などの値で代入 | fillna() | value: 欠損値に代入する値を指定 inplace: Trueにすると破壊的メソッドに変換 |
df['age'].fillna(df['age'].mean(), inplace=True) |
文字の置換(例: 'nan' を NaN に) | replace() | 文字列の置換を行いたい場合に使用。'nan' などの文字列を真の NaN に置換するなどの操作に使用 | df.replace('nan', np.nan, inplace=True) |
欠損値を検出 | isna() または isnull() |
欠損値の位置をTrueとして返す | missing_data = df.isna() |
欠損値の数を確認 | isna().sum() または isnull().sum() |
列ごとの欠損値の数を返す | missing_count = df.isna().sum() |
データフレームの計算
説明 | メソッド | 引数 | 例文 |
---|---|---|---|
指定の列や行の合計値を計算 | sum() | axis=None, skipna=True, ... | total_age = df['age'].sum() |
指定の列や行の最小値を取得 | min() | axis=None, skipna=True, ... | min_age = df['age'].min() |
指定の列や行の最大値を取得 | max() | axis=None, skipna=True, ... | max_age = df['age'].max() |
指定の列や行の平均値を計算 | mean() | axis=None, skipna=True, ... | avg_age = df['age'].mean() |
指定の列や行の中央値を計算 | median() | axis=None, skipna=True, ... | median_age = df['age'].median() |
指定の列や行の標準偏差を計算 | std() | axis=None, skipna=True, ... | std_age = df['age'].std() |
指定の列の各ユニークな値の出現回数を計算 | value_counts() | - | gender_counts = df['gender'].value_counts() |
※引数の解説
axis
操作をどの方向に適用するかを指定する引数です。データフレームにおける2つの主要な方向、すなわち「行」または「列」を指定する際に使用されます。
引数 | 解説 |
---|---|
axis=0 または axis='index' | 操作は行方向に適用されます。たとえば、列の合計を求める際にはこの設定を使用します。デフォルトは通常 axis=0 です。 |
axis=1 または axis='columns | 操作は列方向に適用されます。たとえば、行の合計を求める際にはこの設定を使用します。 |
axis=None | pandasの関数やメソッドにおいて操作をフラットな配列として扱いたい場合に使用されます。この指定がある場合、操作は全ての要素に適用され、データフレームやシリーズの形状を考慮しないで処理が行われます。 |
skipna
skipna は、欠損値(NaNやNoneなど)を計算から除外するかどうかを指定する引数です。
引数 | 解説 |
---|---|
skipna=True | 欠損値を計算から除外します。たとえば、合計や平均を計算する際、欠損値を無視して計算が行われます。これがデフォルトの動作です。 |
skipna=False | 欠損値を計算に含めます。しかし、多くの場合、欠損値が1つでも含まれると結果も欠損値となります。例えば、欠損値が含まれる列の平均を計算しようとすると、結果もNaNとなります。 |