web-dev-qa-db-ja.com

関数を使用してpandas dfに列を追加する

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


  (...)
14

通常は、apply関数を使用できます。関数に必要な列が1つだけの場合は、以下を使用できます。

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

@EdChumが示唆したように。関数に複数の列が必要な場合は、次のようなものを使用できます。

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