首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串传递给Python函数,并将该字符串用作dataframe中的列名

将字符串传递给Python函数,并将该字符串用作dataframe中的列名
EN

Stack Overflow用户
提问于 2020-01-27 13:10:13
回答 1查看 1.2K关注 0票数 0

我正在尝试使用作为python函数属性传递的字符串来创建数据帧。该字符串用于提供参数,以便将某些数据收集到数据帧中。我想使用字符串重命名数据帧,并使用字符串重命名其中一个列名。我附上了下面的代码,以防它不清楚我想要什么。

代码语言:javascript
复制
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“传递给函数来完成所有这些操作。

EN

Stack Overflow用户

发布于 2020-01-27 13:42:39

不确定是否理解您的目标,但重命名一个数据帧,但如果您想使用'GLD‘来创建一个变量GLD,我恐怕这是不可能的,根据Dynamically set local variable的评论

注意:在def stock (tick)中定义的变量的名称仅在此函数中使用,因为您在GLD=stock(' GLD ')期间调用了一个名为GLD的新变量,因此在def函数中,您可以在运行GLD=stock('GLD')后随意调用变量,而不会产生影响。

您可以使用pandas复制数据帧:

代码语言:javascript
复制
GLD=tick.copy()

要更改列的名称,可以这样做:

代码语言:javascript
复制
def stock(tick) :
   ... 
   #assuming you did the copy of the dataframe before. 
   GLD.columns=['date', f'{tick}_close']
   ... 
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59925405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档