1
我該如何加入Series A
多重索引(A, B)
與Series B
索引A
?加入熊貓系列multIndex
我該如何加入Series A
多重索引(A, B)
與Series B
索引A
?加入熊貓系列multIndex
目前唯一的方法是使指數達到一個共同的基礎 - 例如,移動B
水平series_A
多指標的一列這樣既series_A
和series_B
由A
唯一索引:
import pandas as pd
series_A = pd.Series(1, index=pd.MultiIndex.from_product([['A1', 'A4'],['B1','B2']], names=['A','B']), name='series_A')
# A B
# A1 B1 1
# B2 1
# A4 B1 1
# B2 1
# Name: series_A, dtype: int64
series_B = pd.Series(2, index=pd.Index(['A1', 'A2', 'A3'], name='A'), name='series_B')
# A
# A1 2
# A2 2
# A3 2
# Name: series_B, dtype: int64
tmp = series_A.to_frame().reset_index('B')
result = tmp.join(series_B, how='outer').set_index('B', append=True)
print(result)
產生
series_A series_B
A B
A1 B1 1.0 2.0
B2 1.0 2.0
A2 NaN NaN 2.0
A3 NaN NaN 2.0
A4 B1 1.0 NaN
B2 1.0 NaN
另一種方式加入他們將拆散B
等級series_A
:
In [215]: series_A.unstack('B').join(series_B, how='outer')
Out[215]:
B1 B2 series_B
A
A1 1.0 1.0 2.0
A2 NaN NaN 2.0
A3 NaN NaN 2.0
A4 1.0 1.0 NaN
unstack
將B
索引級別移動到列索引。因此,主題是 相同(使指數達到一個共同的基礎),儘管結果是不同的。
比你想象的更不明顯。 – piRSquared
'reset_index'緊跟'set_index'聽起來合法。然而,我總是想知道爲什麼'join'不像在數據框架上那樣靈活地操作系列。 –