で複数のデータフレームで動作しますエレガントな方法は、私は現在、このようなコードのビットを持っているパンダ
if os.path.isfile('D:\\df_1'):
df_1 = pd.read_pickle('D:\\df_1')
else:
df_1 = pd.DataFrame(columns = ['Date', 'Location', 'Product'])
if os.path.isfile('D:\\df_2'):
df_2 = pd.read_pickle('D:\\df_2')
else:
df_2 = pd.DataFrame(columns = ['Date', 'Location', 'Product'])
[...]
if os.path.isfile('D:\\df_20'):
df_20 = pd.read_pickle('D:\\df_20')
else:
df_20 = pd.DataFrame(columns = ['Date', 'Location', 'Product'])
基本的に私はデータフレームがすでに存在する場合、それはそれをロードしない場合は、チェックしてやっていますそれ以外の場合は、空のデータフレームを作成します。これは、コードが新しいデータを各データフレームに追加しようとするためです。だから私は、のようなものがあります:
[retrieve new data and clean it]
df_1 = pd.concat([df_1, df_1_new_data])
は私が持っているすべての20個のデータフレームのためにこれを行います(彼らは別のものが含まれているが、私は別のそれらを維持したい)、その後、日、再びそれらを取得するために、それらを保存します後に、彼らに新しいデータを追加します。今すぐ
df_1.to_pickle('D:\\df_1')
df_2.to_pickle('D:\\df_2')
[...]
df_20.to_pickle('D:\\df_20')
、それはすでに20個のデータフレームでそれを行うのは非常に重いですが、私はおそらくいくつかのより多くを追加する必要があります!さまざまなデータフレームを読み込み、forループやこれに似たものをpickleに書き込む方法はありますか?だから私は多くのためのコードの行を減らすために、私は今、単純な2行のループを持っている?ありがとうございました!
なぜあなたはループでこれらのことをしていませんか? –
私は変数名を動的に作成する必要があり、これはやりにくいことがわかります。 – giga
辞書を使用します。 –