ラムダを使用した計算の関数に変化する列数を入力し、パンダのデータフレームに適用するにはどうすればよいですか?

カリレン

私は毎月新しいデータを持っており、変更できる列がいくつかあります。

次のような関数を使用して、データフレームに新しい列を作成したいと思います。

def calcul(**kwargs):

    [...]

    return result

私はそのような私のコラムを作成します:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis =  1)

しかし、私もこのケースを持つことができます:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['A3'], x['B1', x['B2']), axis =  1)

データに応じて引数のリストを作成し、sys.stdout.write()でリストを入力しようとしましたが、機能しません

liste = ["x[\'A1\']", "x[\'A2\']", "x[\'B1\']"]

df['result'] = df.apply(lambda x: calcul(sys.stdout.write(", ".join(liste))), axis =  1)
そして

置き換えることができるIIUC:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis =  1)

と:

cols = ['A1', 'A2', 'B1']
df['result'] = df.apply(lambda x: calcul(*[x[c] for c in cols]), axis=1)

ここで、colsは、変更される列のリストです。

*それはあなたの元の行に相当しますので、リストをアンパック。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ