2017-02-07 5 views
0

私は連結したいが任意の数のDataFrameを持っているが、それらがすべて一緒になっているときに各DataFrameに識別子を保持する。私の問題はConcatenate Pandas columns under new multi-index levelに似ています。Pandas - ループ内に複数のインデックスラベルを適用する

問題は次のとおりです。私はこのような複数のDataFramesを持っています。

data   Open  High  Low Close Volume 
Date             
2002-01-17 0.18077 0.18800 0.16993 0.18439 1720833 
2002-01-18 0.18439 0.21331 0.18077 0.19523 2027866 
2002-01-21 0.19523 0.20970 0.19162 0.20608 771149 

そして、私はこれを連結したいと思います。

symbol   ABC          XYZ 
data   Open  High  Low Close Volume Open ... 
Date             
2002-01-17 0.18077 0.18800 0.16993 0.18439 1720833 ... 
2002-01-18 0.18439 0.21331 0.18077 0.19523 2027866 ... 
2002-01-21 0.19523 0.20970 0.19162 0.20608 771149 ... 

は、しかし、私はその特定のデータフレームのための ABCまたは XYZラベルを生成しますループを介してこれをやっています。 DataFramesを連結するとき、私は生成されたIDと新しいDataFrameを連結したいと思います。これどうやってするの?

リンクされた質問のソリューションは、すべてのキーを一度に適用しますが、(任意の数のDataFramesのために)ループで連結しているため、このケースでは解決策は適用されません。

おかげ

答えて

1

あなたはまだ同じようにpd.concatを使用することができるはずです。すべてのDataFramesをリストに保存し、それらのDataFramesのすべてのラベルを別のリストに保存してから、 'pd.concat'を使用します。あなたのコードが反映できるいくつかの擬似コードがあります。

dfs = [] 
df_labels = [] 

# for loop that generates dataframes 
for i in someiterable: 
    dfs.append(df_new) 
    df_labels.append(label_new) 

pd.concat(dfs, keys=df_labels, axis=1) 
+0

ありがとうございます。 –

関連する問題