Pandasのチートシートを作っておこう

doestar<br>(ドエスタ)
doestar
(ドエスタ)

ペンぞうさん、Pythonでデータ処理するのにPandasを使ってみたら超便利ですね。

チートシートとかありますか?

ぺんぞう
ぺんぞう

そう思って用意しておいたぞよ。この調子でPythonでしっかりデータ処理にはげみなさい

Series

1次元ラベル付き配列

s = pd.Series([1, 3, 5, np.nan, 6, 8])

Dataframe

二次元のラベル付きデータ構造:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

データのRead / Write

df = pd.read_csv('file.csv')
df = pd.read_excel('file.xlsx')
df = pd.read_json('file.json')

df.to_csv('output.csv')
df.to_excel('output.xlsx')
df.to_json('output.json')

データの選択

df['A']      # 列の選択
df[['A', 'B']]  # 複数列の選択
df.loc[0]     # ラベルによる行の選択
df.iloc[0]     # インデックスによる行の選択
df.loc[0, 'A']   # 特定のセルを選択
df[df['A'] > 5]  # 条件に基づく選択

リストをDataframeに変換する

import pandas as pd

data = [
    ['商品名', '型式', '備考'],
    ['productA', 'type1', 'aaa'],
    ['productB', 'type2', 'bbb']
]

df = pd.DataFrame(data[1:], columns=data[0])
print(df)
商品名型式備考
productAtype1aaa
productBtype2bbb

データの操作

df['C'] = df['A'] + df['B']  # 新しい列の作成
df.drop('C', axis=1)  # 列の削除
df.dropna()  # 欠損値の削除
df.fillna(value=0)  # 欠損値の置換
df.sort_values(by='A')  # 値でソート
df.groupby('A').sum()  # グループ化と集計

データの結合

pd.concat([df1, df2])  # データフレームの連結
pd.merge(df1, df2, on='key')  # データフレームの結合

基本統計量と集計

df.describe()  # 基本統計量の計算
df.mean()    # 平均値の計算
df.median()   # 中央値の計算
df.max()     # 最大値の計算
df.min()     # 最小値の計算
df.count()    # 非欠損値の数を計算

時系列データの処理

df['date'] = pd.to_datetime(df['date'])  # 日付型に変換
df.set_index('date', inplace=True)     # 日付をインデックスに設定
df.resample('M').mean()           # 月次データにリサンプリング

コメント

タイトルとURLをコピーしました