2017-02-07 3 views
0

나는 임의의 수의 DataFrames를 연결하고 싶지만 연결하고자 할 때 각 DataFrame에 식별자를 모두 함께 보관해야합니다. 내 문제는 Concatenate Pandas columns under new multi-index level과 유사합니다.팬더 - 루프에 다중 인덱스 레이블 적용

문제는 다음과 같습니다. 나는 이런 식의 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 ... 

그러나 나는 특정 DataFrame에 대한 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

감사합니다. –