Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Lambda関数について学ぶ | インデックスとデータ選択の基礎理解
Pandasによるデータ整形

bookLambda関数について学ぶ

メニューを表示するにはスワイプしてください

Note
定義

lambda 関数は、lambda キーワードで定義される小さく匿名の関数。def で定義される通常の関数とは異なり、lambda 関数には名前がなく、短く一度きりのロジックに使用される。

構文:

lambda arguments: expression

この関数は arguments を受け取り、expression の結果を返す。いくつかの簡単な例:

12345
double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
copy

lambdailoc[] の併用

pandas では、iloc[] は通常、整数ベースの位置を受け取ります。しかし、lambda 関数も渡すことができます。この場合、x は DataFrame 自体を指し、x.index で行インデックスの値を取得します:

data.iloc[lambda x: x.index < 5]

これは最初の5行(インデックス 0 から 4)を返します。各部分の役割は以下の通りです:

  • lambda x: x を DataFrame とする無名関数の定義;
  • x.index: 行インデックス値へのアクセス;
  • x.index < 5: フィルタ条件;インデックスが 5 未満の行のみ選択。

結果は、iloc[] が行をフィルタするために使用するブール配列となります。

インデックスの偶奇によるフィルタリング

よくあるユースケースとして、データセットを偶数・奇数インデックスで分割する方法があります。剰余演算子 % は割り算の余りを返します:

123456789101112
import pandas as pd # Data import data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv') # Rows with even indices (0, 2, 4, ...) even = data.iloc[lambda x: x.index % 2 == 0] print(even.head()) # Rows with odd indices (1, 3, 5, ...) odd = data.iloc[lambda x: x.index % 2 != 0] print(odd.head())
copy

x.index % 2 == 0 は、インデックスが True で割り切れる(偶数)の場合に 2 となり、それ以外の場合は False となる。

question mark

次のコードにおいて、x は何を指しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  5
some-alt