Правильный способ изменить столбцы с функциями (или другим способом) в pandas - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь выучить 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...