如何在函数中添加参数名称?
How to add on to parameter names in functions?
def priceusd(df):
return df['closeprice'][-1]*btcusdtclose[-1]
此函数使用数据框作为参数,将其比特币价格乘以比特币美元价格,得出某种资产的美元价格。
我想要做的只是让资产的名称成为参数,而不是价格数据来自的数据框。我所有的数据框都被命名为 assetbtc。例如 ethbtc 或 neobtc。我只想能够将 eth 传递给函数和 return ethbtc['closeprice'][-1]*btcusdtclose[-1]
.
例如,
def priceusd(eth):
return ethbtc['close'][-1]*btcusdtclose[-1]
我试过了但没用,但你可以看到我在做什么
def priceusd(assetname): '{}btc'.format(assetname)['close'][-1]*btcusdtclose[-1].
非常感谢。
在这种情况下没有必要使用eval
。正如@wwii 所说,将数据帧存储在字典中,以便您可以轻松地通过名称检索它们。
例如
coins_to_btc = {
'eth': ethbtc,
'neo': neobtc,
}
然后,
def priceusd(name):
df = coins_to_btc[name]
return df['close'][-1]*btcusdtclose[-1]
您应该从包含它的任何内容中获取所需的数据框,而不是尝试使用 str 作为数据框。我的意思是你应该使用你形成的 str 从它所在的位置获取数据框。
例如,假设您已将 priceusd 函数放置在包含所有创建的数据框的同一模块中,例如:
abtc = df1()
bbtc = df2()
cbtc = df3()
# and so on...
def priceusd(asset):
asset_container = priceusd.__module__
asset_name = f'{asset}btc'
df = getattr(asset_container, asset_name)
# now do whatever you want with your df (dataframe)
如果您的代码结构与我假设的不同,您可以替换获取asset_container的代码。但是你通常应该明白我的意思......
def priceusd(df):
return df['closeprice'][-1]*btcusdtclose[-1]
此函数使用数据框作为参数,将其比特币价格乘以比特币美元价格,得出某种资产的美元价格。
我想要做的只是让资产的名称成为参数,而不是价格数据来自的数据框。我所有的数据框都被命名为 assetbtc。例如 ethbtc 或 neobtc。我只想能够将 eth 传递给函数和 return ethbtc['closeprice'][-1]*btcusdtclose[-1]
.
例如,
def priceusd(eth):
return ethbtc['close'][-1]*btcusdtclose[-1]
我试过了但没用,但你可以看到我在做什么
def priceusd(assetname): '{}btc'.format(assetname)['close'][-1]*btcusdtclose[-1].
非常感谢。
在这种情况下没有必要使用eval
。正如@wwii 所说,将数据帧存储在字典中,以便您可以轻松地通过名称检索它们。
例如
coins_to_btc = {
'eth': ethbtc,
'neo': neobtc,
}
然后,
def priceusd(name):
df = coins_to_btc[name]
return df['close'][-1]*btcusdtclose[-1]
您应该从包含它的任何内容中获取所需的数据框,而不是尝试使用 str 作为数据框。我的意思是你应该使用你形成的 str 从它所在的位置获取数据框。
例如,假设您已将 priceusd 函数放置在包含所有创建的数据框的同一模块中,例如:
abtc = df1()
bbtc = df2()
cbtc = df3()
# and so on...
def priceusd(asset):
asset_container = priceusd.__module__
asset_name = f'{asset}btc'
df = getattr(asset_container, asset_name)
# now do whatever you want with your df (dataframe)
如果您的代码结构与我假设的不同,您可以替换获取asset_container的代码。但是你通常应该明白我的意思......