2017-05-04 9 views
0

簡単な質問。
データフレームの名前の中に変数を設定することによって、データフレームのシーケンスを作成する方法があるかどうかを知りたいと思います。たとえば、次の実行されたとき一連のデータフレームを作成する

df_0 = pd.read_csv(file1, sep =',') 

b=0 
x=1 
while (b == 0): 
    df_+str(x) = pd.merge(df_+str(x-1) , Source, left_on='R_Key', right_on = 'S_Key', how='inner') 

    if Final_+str(x).empty != 'True': 
     x = x + 1 
    else: 
     b = b + 1 

さて、これはdf_ + STR(X)は、 "オペレータに割り当てることはできません" を返します。どのようにこれを修正するための任意のアイデア?

+0

なぜDataFramesのリストを使用しないのですか? – Silveris

+0

'(b == 0):dflist.append(pd.merge(dflist [x-1]、ソース、left_on = 'R_Key'、right_on = 'S_Key'、how = 'inner'))' – Silveris

+0

@ user37143あなたはそれを受け入れることに加えて、答えをupvoteする必要があります! :) – Chuck

答えて

0

これは、リストを使用する適切なタイミングです(シーケンス Pythonでタイプする)ので、必要なだけ多くのデータフレームを参照できます。

dfs = [] 
dfs.append(pd.read_csv(file1, sep =',')) # It is now dfs[0] 

b=0 
x=1 
while (b == 0): 
    dfs.append(pd.merge(dfs[x-1], 
         Source, left_on='R_Key', 
         right_on = 'S_Key', how='inner')) 

    if Final[x].empty != 'True': 
     x = x + 1 
    else: 
     b = b + 1 

ここでは、Finalを決して定義しません。あなたはそこに同じトリックを使用する必要があります。

0

なぜあなたはこれをやりたいのか分かりませんが、データフレーム名の文字列をキーとして、生成されたデータフレームを値として辞書を作成するだけです。

関連する問題