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

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