Kullanıcı işlevini tanımlayarak ve ardından uygulamayı kullanarak Panda'ya yeni bir sütun ekleyebiliyorum. Bununla birlikte, bunu lambda kullanarak yapmak istiyorum; etrafında bir yolu var mı?İki varolan sütunda lambda işlevini kullanarak Panda'da yeni bir sütun oluşturma
Örneğin, df
iki sütun a
ve b
bulunur. Ben a
ve b
arasındaki en uzun uzunluğa eşit olan yeni bir sütun c
oluşturmak istiyorum.
df['c'] = df.apply(lambda x, len(df['a']) if len(df['a']) > len(df['b']) or len(df['b']))
Bir yaklaşım:
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
Bu çalışacaktır. lambda x' sonrası bir kolon ihtiyacı var, ve ifadeniz 'else' (belki de' '' yerine) olmalıdır. –
Hızlı yanıt için teşekkürler, ancak hala çalışmıyor. İşte kod ve hata mesajı. Herhangi bir yardım sağlayabiliyorsanız minnettar olacağım. df = pd.DataFrame ({'a': ['dfg', 'f', 'fff', 'fgrf', 'fghj'], 'b': ['sd', 'dfg', 'edr' , 'df', 'fghjky']}) df ['c'] = df.apply (lambda x: len (x ['a']), eğer len (x ['a'])> len (x [ 'b']) else (x ['b'])) KeyError: ('a', indeks a 'a' a '' yazınız) –
Lütfen yorumlara kod yazmayın, bunun yerine [değiştir]. –