【毎日Python】Pythonでシリーズの各要素に関数を適用する方法|Serise.apply

apply
こつこつPython

Pythonでシリーズの各要素に関数を適用する方法です。
使用するのは、PythonのPandasライブラリのapplyメソッドです。
applyメソッドでは、無名関数のlambdaやdefで作成した関数を指定して、シリーズに適用させることができます。
このようなシリーズを作成します。

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

実行結果:

0   7000
1   5000
2  23000
3   2500
4  12000
dtype: int64

片仮名とアルファベットが混在している文字列を値に設定しておきます。

まず、lambda関数にif文を使ってみましょう。
lambda関数では、引数とコロンの後に、実行したい処理を指定します。
実行します。
それぞれ一万円以上、または一万円未満で表示することができました。

s1.apply(lambda x: '1万円以上' if x >= 10000 else '1万円未満')

実行結果:


0   1万円未満
1   1万円未満
2   1万円以上
3   1万円未満
4   1万円以上
dtype: int64

次に、消費税込みの料金を計算する関数を作成します。
この関数を適用させてみましょう。
実行します。
消費税込みの料金を計算することができました。

def add_tax(x):
    return x * 1.10

実行結果:

0   7750.0
1   5500.0
2   25300.0
3   2750.0
4   13200.0
dtype: int64

なお、applyメソッドに似たメソッドで、mapメソッドがあります。
使い方はほぼ同じですが、applyメソッドは引数を持つような複雑な関数にも適用できます。

s1.apply(add_tax)

実行結果:

0   7750.0
1   5500.0
2   25300.0
3   2750.0
4   13200.0
dtype: int64
未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト