使用函数在pandas df中添加列

Rag*_*ine 11 python yahoo function dataframe pandas

我有一只熊猫df(见下文).我想添加一个名为"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


  (...)
Run Code Online (Sandbox Code Playgroud)

sco*_*mes 24

通常,您可以使用apply函数.如果您的功能只有一列,您可以使用:

df['price'] = df['Symbol'].apply(getquotetoday)
Run Code Online (Sandbox Code Playgroud)

正如@EdChum建议的那样.如果您的函数恰好需要多个列,您可以使用例如:

df['new_column_name'] = df.apply(lambda x: my_function(x['value_1'], x['value_2']), axis=1)
Run Code Online (Sandbox Code Playgroud)