Adding a column in pandas df using a function

Question:

I have a Pandas df [see below].
How do I add values from a function to a new column “price”?

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


  (...)

Answers:

In general, you can use the apply function. If your function requires only one column, you can use:

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

as @EdChum suggested. If your function requires multiple columns, you can use something like:

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

Alternatively you can use pipe:

df['price'] = df['Symbol'].pipe(getquotetoday)
Answered By: rachwa