Merhaba Pandalar için concat, join ve birleştirme yöntemlerini araştırıyorum ve istediğimi bulamıyorum.
İki veri çerçevem olduğunu varsayalım
A = pd.DataFrame("A",index=[0,1,2,3,4],columns=['Col 1','Col 2','Col 3'])
B = pd.DataFrame("B",index=[0,1,2,3,4],columns=['Col 1','Col 2','Col 3'])
>>> A
Col 1 Col 2 Col 3
0 A A A
1 A A A
2 A A A
3 A A A
4 A A A
>>> B
Col 1 Col 2 Col 3
0 B B B
1 B B B
2 B B B
3 B B B
4 B B B
Şimdi sütunları birleştirilen yeni bir veri çerçevesi yapmak istiyorum, sütunları nasıl istediğim için çoklu bir dizin oluşturursam açıklamanın en kolay olduğunu düşünüyorum
index = pd.MultiIndex.from_product([A.columns.values,['A','B']])
>>> index
MultiIndex(levels=[['Col 1', 'Col 2', 'Col 3'], ['A', 'B']],
labels=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]])
Şimdi sütunlar için bu çoklu dizinle boş bir veri çerçevesi yaparsam
empty_df = pd.DataFrame('-',index=A.index,columns=index)
>>> empty_df
Col 1 Col 2 Col 3
A B A B A B
0 - - - - - -
1 - - - - - -
2 - - - - - -
3 - - - - - -
4 - - - - - -
Sorum şu: Bunu elde etmek için hangi birleştirme, birleştirme veya birleştirme kullanıyorum? Concat için çok şey denedim ... iç, dış vb. İstediğimi bulamıyorum. Aklıma gelen tek şey boş veri çerçevesi yapmak ve sonra geri doldurmak.
Düzenleme: Jezrael yanıt denedikten sonra, yakın ama tam olarak değil. İstediğim iç içe sütunlar gibi mi? Örneğin
empty_df['Col 1']
>>> empty_df['Col 1']
A B
0 - -
1 - -
2 - -
3 - -
4 - -
Veya
>>> empty_df['Col 1']['A']
0 -
1 -
2 -
3 -
4 -
Name: A, dtype: object
Bu benim ortaya koyduğum bir çözüm ama sütunları yinelemekten.
row_idx = A.index.union(B.index)
col_idx = pd.MultiIndex.from_product([A.columns.values,['A','B']])
new_df = pd.DataFrame('-',index=row_idx,columns=col_idx)
for column in A.columns:
new_df.loc[:,(column,'A')] = A[column]
new_df.loc[:,(column,'B')] = B[column]
>>> new_df
Col 1 Col 2 Col 3
A B A B A B
0 A B A B A B
1 A B A B A B
2 A B A B A B
3 A B A B A B
4 A B A B A B
>>> new_df['Col 1']
A B
0 A B
1 A B
2 A B
3 A B
4 A B
>>> new_df['Col 1']['A']
0 A
1 A
2 A
3 A
4 A
Name: A, dtype: object