我正在尝试使用我作为python函数属性传递的字符串来创建数据框。该字符串用于输入参数以将一些数据刮入数据帧。我想使用字符串重命名数据框,并使用字符串重命名列名称之一。如果不确定我想要什么,我附上以下代码。
def stock(tick):
tick=tick.upper()
tick, metadata=ts.get_daily(symbol=tick, outputsize='full')
tick['date']=tick.index
tick.index.name='index'
tick=tick[['date', '4. close']]
tick.columns=['date', 'tick_close']
tick.sort_values('date', inplace=True)
tick.drop_duplicates(subset='date', keep='first', inplace=True)
return tick
GLD=stock('GLD')
在上面的代码中,我希望将数据框从tick重命名为GLD,并将tick_close列重命名为GLD_close。我需要通过简单地将“ GLD”传递给函数来完成所有这些操作。
不确定要了解您的目标,而是要重命名数据框,但是,如果您想使用“ GLD”来创建变量GLD,那么根据Dynamically set local variable]中的注释,恐怕这是不可能的
注意:在def stock(tick)中定义的变量名称仅在您在GLD = stock('GLD')期间调用名为GLD的新变量时才在此函数中使用,因此在def函数中您可以按自己的方式调用变量希望在运行后没有影响GLD = stock('GLD')
您可以使用熊猫制作数据框的副本:
GLD=tick.copy()
要更改列的名称,您可以这样:
def stock(tick) :
...
#assuming you did the copy of the dataframe before.
GLD.columns=['date', f'{tick}_close']
...