【问题标题】:Python function: variable and stringPython函数:变量和字符串
【发布时间】:2017-02-27 18:23:48
【问题描述】:

我有以下公式要检查(感谢您在 this 上帮助我!)。

queries = ['dog','cat','hamster']

    def get_trends(queries):
        return pd.concat([pytrend.trend({'q': x, 'date': '01/2015 12m'}, return_type='dataframe')
    for x in queries], axis=1)

get_trends(queries)

此函数为列表中的每个项目触发 Google 趋势查询,并将返回的数据框彼此相邻放置。我现在需要做的是完全一样,但在查询中每个静态变量(宠物)。

例如,没有公式的查询将是

return pytrend.trend({'q': 'pet, dog', 'date': '01/2015 12m'}, return_type='dataframe')

我知道我可以试试

queries = ['pet, dog','pet, cat','pet, hamster']

但也许有更优雅的方式?

我试过了

static =['pet']
return pytrend.trend({'q': ''' + static + x + ''', 'date': '01/2015 12m'}, return_type='dataframe')

但没有成功。

【问题讨论】:

  • 也许你可以使用format?第一个代码块中的x 是什么?
  • 见上,我更新了代码。
  • 哦,好吧。你可以这样做:return pd.concat([pytrend.trend({'q': static+x, 'date': '01/2015 12m'}, return_type='dataframe') for x in queries], axis=1)
  • 在哪里static = 'pet '
  • 这对你有用吗?

标签: python string list function


【解决方案1】:

你可以这样做:

In [54]: %paste
static = 'animals'
animals = ['dog','cat','hamster']
queries = ['{}, {}'.format(static, x) for x in animals]
## -- End pasted text --

In [55]: queries
Out[55]: ['animals, dog', 'animals, cat', 'animals, hamster']

现在您可以将queries 传递给您的函数:

get_trends(queries)

【讨论】:

  • 据我了解,OP 不想在每个元素的开头添加 'pet'。不确定这是否是 OP 的意思,但如果不是,这就是解决方案。
  • 效果很好。只有最后一个问题:在连接数据框时,如何防止列按字母顺序排列。因为:猫狗狗仓鼠狗就是df的样子。
猜你喜欢
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多