データサイエンスのためによく利用されるPandas。
私は主に営業データのエクセルを加工するときに利用します。
必要な機能のみを抜粋した記事にしました。
参考になれば幸いです。
抽出
extract.py
指定のカラムのみ抽出
df = df[['得意先コード', "得意先名", "電話番号"]]
指定のカラムから指定の値のデータを抽出
df = df[df["営業担当"] == "佐藤"]
指定のカラムから営業担当が佐藤と鈴木のデータを抽出
df = df['営業担当'].isin(["佐藤", "鈴木"])
除外
exclusion.py
指定のカラムのデータが欠損値の場合データを除外
df = df.dropna(subset=['得意先コード', '電話番号'])
商品分類がアンチウィルスソフトでファイアウォール機能がついていない商品を除外
df = df[~((df["商品分類"] == "アンチウィルスソフト") & (df["ファイアウォール"] == False))]
変換
dtype.py
カラムをdatetime型に変換
df["日付"] = pd.to_datetime(df["日付"])
並び替え
sort_values.py
byで並び替えたいカラムを指定、ascendingで昇順・降順を指定
df = df.sort_values(by=['sales_month', 'customer_id'], ascending=[True, True])
リスト・辞書変換
tolist_dict.py
カラム名をリストで取得
df.columns.values.tolist()
指定カラムの値をリストで取得
df['取引先名'].tolist()
すべての値をリストで取得
df.values.tolist()
すべての値を辞書で取得
df.to_dict()
結合
marge_concat.py
データフレームを横方向に連結
# 2つのデータフレームの'customer_code'と'得意先コード'を元にdf_add_customersのデータを追加
df_marge = pd.merge(df_source_customes, df_add_customers, left_on='customer_code', right_on='得意先コード', how='left')
データフレームを縦方向に連結
df = pd.concat([df, df_add])
sqlite
sqlite.py
import sqlite3
file_sqlite3 = "main.db"
table_name = "report"
書き込み
with sqlite3.connect(file_sqlite3) as conn:
df.to_sql(table_name, conn, if_exists='append')
読み込み
with sqlite3.connect(file_sqlite3) as conn:
df = pd.read_sql_query('SELECT * FROM report', conn)
表示のオプション
jupyterlabで表示結果が省略されなくなる
option.py
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)