Pandas入門講座|14.SeriesやDataFrameに関数を適用する方法(map, apply, applymapメソッド)【PythonのライブラリPandas】

オススメ

この動画では、pandasのmap, applymap, applyについて学びます。
これまでのレッスンでは、作成したデータフレームを並び替えたり、集約や集計、結合の方法を学んできました。
これだけでもデータ解析の前処理、簡単な分析あればできるでしょう。
ですが、もっと細かくデータ前処理をしたい場合、データフレーム全体に関数を適用させたり、文字列操作をしたい場面が出てくると思います。
そういったときに役立つのがmapやapplymap,applyです。
それでは、いってみましょう!

▼目次
00:00 はじめに
01:36 数値Seriesとmapメソッド
06:05 文字列Seriesとmapメソッド
09:30 数値Seriesとapplyメソッド
11:48 文字列Seriesとapplyメソッド
12:59 数値DataFrameとapplymapメソッド
16:09 文字列DataFrameとapplymapメソッド
16:49 数値DataFrameとapplyメソッド
20:23 文字列DataFrameとapplyメソッド
21:08 まとめ
23:22 おわりに

▼関連動画
Pandas入門|05.シリーズ (Series) とは【Pythonの必須ライブラリのPandasを初心者にわかりやすく解説】

Pandas入門|05.シリーズ (Series) とは【Pythonの必須ライブラリのPandasを初心者にわかりやすく解説】

【Python超入門コース】12.関数 |関数を料理ロボットに例えて説明しました【プログラミング初心者向け入門講座】

【Python超入門コース】12.関数 |関数を料理ロボットに例えて説明しました【プログラミング初心者向け入門講座】

▼おすすめ動画
Pythonで面倒なExcelの仕事を自動化しよう【第一弾】

Pythonで面倒なExcelの仕事を自動化しよう( 第一弾 )|一瞬で仕事がおわるプログラミング活用術

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングのやり方をわかりやすく解説

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう|一瞬で仕事がおわるプログラミング活用術

Python超入門コース |Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など)
前職:リクルート

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook :https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/

▼文字書き起こし
詳しい説明に入る前に、少しだけ整理してから進めていきたいと思います。
それではパソコン画面に切り替えてレッスンを進めていきましょう。
Pandasのシリーズで使えるのがmap,applyです。
使い分けのイメージをこのように一覧にしてみました。
これらを具体的な例で説明していきます。
そして、データフレームで使えるのがapplymap,applyです。
こちらも使い分けのイメージを一覧にしました。
同様に具体的な例で説明します。また、できること、できないことなども比較します。
使い方も似ているので、どの場面でどれを使うのがいいのか迷うことがあると思います。
実用イメージがしやすいように様々なパターンを紹介しますので、動画の最後にはまとめもありますので、参考にして、ぜひ実践に活用してください。

import pandas as pd
import numpy as np

はじめに、PandasとNumPyをインポートします。
NumPyは、Pythonで高速に数値の計算をするために様々な数学関数を提供するライブラリです。

s1 = pd.Series([7000, 5000, 23000, 2500, 12000])
s1

それでは、シリーズを作成してmapの使い方をみていきましょう。
変数s1に、5つの要素のシリーズを代入します。実行します。
このようなデータです。商品単価をイメージして作成しています。
まずはこのシリーズの値を、全て2倍にしてみましょう。

s1 * 2

レッスン5のSeriesでは、このように記述しました。
2倍にするだけであれば、こうやって計算することは簡単です。

def double(x):
return x * 2

では、mapメソッドを使って、シリーズを2倍にしてみましょう。
mapメソッドは、シリーズ全ての要素に同じ関数を適用したいときに使います。
シリーズを2倍にする関数を作って、適用させてみましょう。
まずは、「数値を2倍にする」という関数を作ります。
関数の作り方は、Python超入門コースのレッスン12で説明しています。詳しく知りたい方は、今右上に出ているカードをクリックしてください。
関数を作るには、def 関数名です。関数名をdoubleとします。ここで引数を渡すと、かける2になる関数を作ります。

s1.map(double)

作った関数を、mapメソッドで適用させてみましょう。
シリーズ ドットmap、丸括弧には適用させたい関数を渡します。作成したdoubleを記述しましょう。
実行します。
全ての値が2倍になりました。

s1.map(lambda x: x * 2)

このようなシンプルな関数の場合や、何度も呼び出して使用しない関数は、defで宣言せずに関数を作ることができます。
名前のない関数で無名関数と言い、ラムダ式という方法です。
mapやあとで説明するapply,applymapとセットで使う場面が多いので簡単に使い方を説明します。
詳しい説明はPython入門で説明しますので、少々お待ちください。
では、先ほどと同様に、シリーズ全体を2倍にしてみましょう。
sドットmapで、カッコの中は関数でしたね。ここにラムダ式の関数を書きます。
lambda半角スペース、そして引数 xです。コロンに続けて、計算したい内容を書きます。2倍にするので x* 2です。
ここでxを使用しましたが、xでもyでも、ここでしか使わない変数なのでなんでもよいです。
コロンの左が引数、右を返り値と言います。
なので、xにシリーズそれぞれの要素が代入され、x * 2を計算した結果が返されます。
実行します。シリーズ全体の要素に2倍になる式を適用できました。
ラムダ式は、さっと計算したいときに便利です。

今度はラムダ式で、if文を試してみましょう。
s1.mapで適用させたい関数として、ラムダ式で条件を書きます。
10000より小さければ「1万円以上」、それ以外は「1万円未満」と表示する条件です。
実行してみましょう。if条件も適用することができました。

続きは文字書き起こしブログにて。

▼文字書き起こしブログ
https://kino-code.com/pandas_function/

#PythonとPandas #Pandas入門 #Pandas使い方

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. いろは より:

    いつも見てます。
    Python 超入門コース、Pandas編、それぞれすべて見終わりました。
    次は何に手をつければいいでしょうか。
    自分はデータ解析をやってみたいと考えています。

  2. けーろけろ より:

    自分がちょうど今理解したい内容だったので、わかりやすく説明いただけて感謝です!

  3. shinzaki yoichi より:

    いつも素晴らしい動画をありがとうございます。

    Python入門コースの動画は、まだアップされていないですよね?今後は、一度復習をしつつ自動化の動画に進んでいこうと思います!よろしくお願いします!

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