0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pandasを利用するときの前処理

Last updated at Posted at 2024-07-07

データサイエンスのためによく利用される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)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?