2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonデータ分析 | 前処理で高頻出なpandasメソッド

Last updated at Posted at 2022-07-31

Pythonデータ分析の前処理で、意外と利用機会の多い便利なメソッドを紹介します。また最後に、データ分析の流れを経験できる初心者にオススメ学習コンテンツを紹介しますので、ご参考ください。

必要なライブラリ

import pandas as pd

サンプルデータ

df_score = pd.DataFrame({
    'ID': ['A001', 'A002', 'A002', 'A003', 'A004', 'A005', 'A006', 'A007', 'A007', 'A008', 'A009', 'A010', 'A011', 'A012'], 
    '部署': ['営業', '営業', '営業', '営業', '経理', '経理', '人事', '人事', '人事', '生産', '生産', '総務', '社長室', '社長室'], 
    '役職': ['部長', None, None, None, '課長', None, None, None, None, '課長', None, None, None, None], 
    '': ['山田', '高橋', '高橋', '野口', '池田', '北本', '森田', '伊藤', '伊藤', '花田', '鈴木', '佐藤', '木下', '江口'], 
    '': ['弘樹', '優斗', '優斗', '美咲', '裕子', '雄太', '健司', '奈央', '奈央', '', '雄介', '瑞樹', '智子', ''], 
    'スコア': [52, 56, 47, 67, 32, 57, 46, 83, 70, 49, 55, 38, 39, 62]
    })

Image from Gyazo

drop 列の削除

df_score.drop('役職', axis=1, inplace=True)
# axis=1の指定によって、列を削除できる
# inplace=Trueの指定によって、df_scoreの値が置き換わる

Image from Gyazo

query 条件でフィルタ

df_score.query('部署 == ["営業", "人事"]', inplace=True)
# inplace=Trueの指定によって、df_scoreの値が置き換わる

Image from Gyazo

sort_values 並び替え

df_score.sort_values(['ID', 'スコア'], inplace=True)
# リストは並び替え優先度の高い順に並べる
# inplace=Trueの指定によって、df_scoreの値が置き換わる
# ascending=Falseを指定すると降順

Image from Gyazo

drop_duplicates 重複削除

df_score.drop_duplicates(subset=['ID'], keep='last', inplace=True)
# subset=['ID']の指定によって、重複判断する列を指定。複数設定可。複数の場合、すべて重複した場合に限り重複とみなす
# keep='last'の指定によって、最後のレコードを残す。最初のレコードを残す場合、keep='first'を指定
# inplace=Trueの指定によって、df_scoreの値が置き換わる

Image from Gyazo

apply 新しい列の作成

def full_name(df):
    return df[''] + df['']
# 変換ロジックを定義

df_score['姓名'] = df_score.apply(full_name, axis=1)
# 定義した関数をapplyで適用する
# axis=1の指定によって、列を作成できる

Image from Gyazo

transpose 行列入れ替え

df_score.transpose()

Image from Gyazo

merge テーブル結合

サンプルデータその2

df_blood = pd.DataFrame({
    'ID': ['A001', 'A002', 'A003', 'A004', 'A005', 'A006', 'A007', 'A008', 'A009', 'A010', 'A011', 'A012'], 
    '氏名': ['山田弘樹', '高橋優斗', '野口美咲', '池田裕子', '北本雄太', '森田健司', '伊藤奈央', '花田武', '鈴木雄介', '佐藤瑞樹', '木下智子', '江口悟'], 
    '血液型': ['A', 'B', 'O', 'AB', 'A', 'O', 'B', 'A', 'A', 'B', 'O', 'O']
    })

Image from Gyazo

pd.merge(df_score, df_blood, on='ID', how='left')
# on='ID'の指定によって、結合キーを指定。
# how='left'の指定によって、結合方式を指定。'left'は左外部、'inner'は内部、'outer'は完全外部。

Image from Gyazo

【最後に】データ分析手法のコンテンツ(私が制作したものの紹介)

私が制作したものですが、以下、初心者向けのPythonデータ分析学習コンテンツです。データの取り込み、前処理から可視化の流れを学習できる教材です。考察イメージまで記載されているのでオススメです。一部無料公開されているので、ご興味あればお試しください。

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?