2016-10-18 13 views
0

私は次の数式をチェックしています(thisで私を助けてくれてありがとう!)。Python関数:変数と文字列

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トレンドクエリを起動し、返すデータフレームを隣り合わせに配置します。私が今行う必要があるのは、まったく同じことをすることですが、クエリ内にそれぞれ静的変数(ペット)を持たせることです。

例えば、式なしのクエリは、私が

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

試みることができる知っている。しかし、多分もっとエレガントな方法があります

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

でしょうか?

私は

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

を試みたが、それに成功しませんでした。あなたはそれをこのように行うことができます

+0

たぶん、あなたはformat'、 '使用できますか?最初のコードブロックで 'x'とは何ですか? –

+0

上記を参照して、コードを更新しました。 – RPacker

+0

大丈夫。戻り値:pd.concat([pytrend.trend({'q':静的+ x、 '日付':'01/2015 12m '}、return_type =' dataframe ') クエリのx]、軸= 1) ' –

答えて

0

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) 
+0

OPはすべての要素の先頭に' 'ペット ''を追加したくないということは私の理解でした。 OPが意味するものなのかどうかは分かりませんが、そうでない場合、これが解決策です。 –

+0

それはうまく動作します。最後の問題は1つだけです。データフレームを連結するときに列がアルファベット順に並べられないようにするにはどうすればよいですか。なぜなら、猫\t犬のハムスターの犬は、dfのようなものです。 – RPacker

関連する問題