44

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


  (...)
d-cubed
  • 1,034
  • 5
  • 30
  • 58
RageAgainstheMachine
  • 901
  • 2
  • 11
  • 28

2 Answers2

84

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)
d-cubed
  • 1,034
  • 5
  • 30
  • 58
scomes
  • 1,756
  • 14
  • 19
0

Alternatively you can use pipe:

df['price'] = df['Symbol'].pipe(getquotetoday)
rachwa
  • 1,805
  • 1
  • 14
  • 17