Я пытаюсь выучить pandas и делать что-то pandas способом. У меня есть DataFrame, где я хочу применить какую-то функцию к некоторым столбцам. Я сделал что-то, что работает, но я хочу знать, что это pandas способ или, если сделал это "неправильно". Дело в том, что мой фрейм данных сейчас содержит около 400 000 строк и 21 столбца, но тогда он будет действительно больше, чем сейчас, поэтому я хочу сделать все «лучше». Я оставляю пример. В DataFrame я хочу работать со столбцом, и к каждой строке этого столбца применить функцию, которая использует значения других столбцов, но опять же из той же строки. Вот более или менее то, что я сделал, это работает, но pandas думает ? Есть эффективный способ сделать что-то подобное?
def resultWohKomi(orders,outcomes,komis): # outcomes and komis are floats
try:
result = orders[1] # order is a [1,0] or [0,1]
when_black_win_then_positive_else_negative = 2*result-1
points = when_black_win_then_positive_else_negative*(outcomes + komis)
if points > 0:
result = [1,0]
else:
result = [0,1]
return result
except:
return orders
Type_new = df.apply(lambda x: resultWohKomi(x.order,x.outcome,x.komi), axis=1)
df.insert(2, "results",Type_new)
df.order равны [1,0] или [0,1] (список целых)
df.outcome is плавает как 19.0
df.komi это плавает как 6.5