2案提示します。
1案目
1つ目は、最初にlocals()
組み込み関数を使用して、シンボルテーブル辞書を取得します。
この辞書のキーはシンボル(関数や変数など)の名前文字列です。
したがって、以下のようにpd.concat
に指定するリストを動的に構成できます。
Python
1locals_ = locals()
2pd.concat([locals_['df{}'.format(i + 1)] for i in range(1000)])
コードの解説
まず、'df{}'.format(i + 1)
の format メソッドについては、以下のリンクを参照してください。
str.format(*args, **kwargs)
文字列の書式化操作を行います。このメソッドを呼び出す文字列は通常の文字、または、 {} で区切られた置換フィールドを含みます。それぞれの置換フィールドは位置引数のインデックスナンバー、または、キーワード引数の名前を含みます。返り値は、それぞれの置換フィールドが対応する引数の文字列値で置換された文字列のコピーです。
つまり、'df{}'
の {} は、置換フィールドであり、引数で与えたi + 1
の結果に置き換わります。
Python
1print('df{}'.format(1)) # -> df1
2print('df{}'.format(2)) # -> df2
3print('df{}'.format(3)) # -> df3
そして、[locals_['df{}'.format(i + 1)] for i in range(1000)]
は、
以下のコードと同様のことをリスト内包表記で記述しています。
Python
1pd.concat([locals_['df1'], locals_['df2'], ..., locals_['df1000']])
locals_
は辞書であるため、[] を用いてキーから値を取得することができます。
最初の locals_['df1']
の結果は、df1 変数の値である DataFrame になります。
したがって、以下のコードと同じ結果が得られます。
Python
1pd.concat([df1, df2, ..., df1000])
2案目
2つ目は、最初からリストに各 df を追加していく方法です。
そして、pd.concat
にはこのリストを指定します。
Python
1df_list = []
2df_list.append(navew3('家具', '付き', '販売'))
3df_list.append(navew11('光', '・', '風', '・', '緑', 'に', '育ま', 'れ', 'た', '低層', 'マンション'))
4
5pd.concat(df_list)
1つ目は各 df を定義している箇所の修正は不要ですが、2つ目の方が理解しやすい実装だと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/08 23:00 編集
2017/04/09 06:27
2017/04/09 06:57