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)
Alternatively you can use pipe
:
df['price'] = df['Symbol'].pipe(getquotetoday)
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
(...)
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)
Alternatively you can use pipe
:
df['price'] = df['Symbol'].pipe(getquotetoday)