首页 > 解决方案 > 通过一个函数运行多个列

问题描述

反正我可以运行这样的功能吗

crypto['Price'] = crypto['Ticker'].transform(lambda item: cg.get_price(ids=item, vs_currencies='usd'))

使用功能

cg.get_coin_market_chart_range_by_id(id='bitcoin',vs_currency='usd',from_timestamp='1635505200',to_timestamp='1635548400')

三列的值id , from_timestamp , to_timestamp 与列

crypto['Ticker'] , crypto['Dateroundts'] , crypto['Dateround+1ts']

我基本上想用上面的函数创建一个新列,使用三列作为变量并且不知道如何。

标签: pythonpandasdataframe

解决方案


您可以使用applywithaxis=1跨行应用:

crypto['Price'] = crypto.apply(lambda x: cg.get_coin_market_chart_range_by_id(id=x.Ticker,vs_currency='usd',from_timestamp=x.Dateroundts,to_timestamp=x['Dateround+1ts']), axis=1)

您可以使用点表示法或使用xdict带方括号)。虽然如果名称不是单个字母数字单词,您只能使用xlike dict


推荐阅读