Adding a column in pandas df using a function

RageAgainstheMachine picture RageAgainstheMachine · Oct 14, 2016 · Viewed 33.9k times · Source

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


  (...)

Answer

scomes picture scomes · Oct 14, 2016

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)