web-dev-qa-db-fra.com

Ajout d'une colonne dans pandas df en utilisant une fonction

J'ai un Pandas df [voir ci-dessous]. Comment ajouter des valeurs d'une fonction à une nouvelle colonne "prix"?

function:

    def getquotetoday(symbol):
        yahoo = Share(symbol)
        return yahoo.get_prev_close()

df:

Symbol    Bid      Ask
MSFT     10.25   11.15
AAPL     100.01  102.54


  (...)
14

En général, vous pouvez utiliser la fonction appliquer. Si votre fonction ne nécessite qu'une seule colonne, vous pouvez utiliser:

df['price'] = df['Symbol'].apply(getquotetoday)

comme l'a suggéré @EdChum. Si votre fonction nécessite plusieurs colonnes, vous pouvez utiliser quelque chose comme:

df['new_column_name'] = df.apply(lambda x: my_function(x['value_1'], x['value_2']), axis=1)
31
scomes