我有一個DataFrame,df1
,它是df
的一部分。 df
是多索引並且形狀(8,)
。切片刪除了一些第二級df
。當我做df1.shape
它返回(4,)
- 一切都好 - 但是當我做df1.index.levels[0]
這將返回(4,)
。這是怎麼發生的?爲什麼熊貓數據框切片的索引與其形狀不同?
In [ ]:
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(8,2), index=arrays)
df
Out [ ]:
0 1
bar one -0.447155 -0.323073
two 0.115899 -0.015561
baz one -0.272498 1.847073
two -0.399948 -0.264327
foo one 0.169687 -1.708543
two 1.154434 0.878936
qux one 0.535721 0.437186
two -1.203431 0.568412
In [ ]:
df1=df[df[1]>0]
Out [ ]:
0 1
baz one -0.272498 1.847073
foo two 1.154434 0.878936
qux one 0.535721 0.437186
two -1.203431 0.568412
現在的怪異位
In [ ]:
df1=df[df[1]>0]
print(df1.index.levels[0], df1.index.levels[0].shape)
Out [ ]:
Index(['bar', 'baz', 'foo', 'qux'], dtype='object') (4,)
我覺得這很奇怪,因爲沒有在df1
所示bar
。這背後的原因是什麼?
我的猜測是這是與複製/不復制,但我不明白爲什麼。
我想我不知道多重索引是否想要在那裏尋找,或知道要尋找什麼,以致非常感謝! – josh