ユーザ機能を定義してからapplyを使用して、新しいカラムをPandaに追加できます。しかし、私はラムダを使ってこれを行いたいと思います。周りに道があるのですか?既存の2つのカラムでlambda関数を使用してパンダで新しいカラムを作成する
たとえば、df
は、2つの列a
およびb
を持っています。私はa
とb
の間の最長の長さに等しい新しい列c
を作成したいと思います。
いくつかの事のように:
df['c'] = df.apply(lambda x, len(df['a']) if len(df['a']) > len(df['b']) or len(df['b']))
一つのアプローチ:
df = pd.DataFrame({'a':['dfg','f','fff','fgrf','fghj'], 'b' : ['sd','dfg','edr','df','fghjky']})
df['c'] = df.apply(lambda x: max([len(x) for x in [df['a'], df['b']]]))
print df
a b c
0 dfg sd NaN
1 f dfg NaN
2 fff edr NaN
3 fgrf df NaN
4 fghj fghjky NaN
あなたは構文エラーを修正したら、これは動作します。 'lambda x'はそれの後にコロンを必要とし、式に' else'がありません( 'or'の代わりに使うべきかもしれません)。 –
クイックレスポンスのおかげで、それでも動作しません。ここにコードとエラーメッセージがあります。何か助けてもらえれば幸いです。df = pd.DataFrame({'a':['dfg'、 'f'、 'fff'、 'fgrf'、 'fghj']、 'b':['sd'、 'dfg'、 'edr' len(x ['a'])> len(x ['a'])ならばdf ['c'] = df.apply(lambda x:len(x ['a']) KeyError:( 'a'、u'curred、index a ') –
コメントにコードを入れず、質問を[編集]してください。 –