5
dizesinde varsa, documentation'dan alınan aşağıdaki gibi görünen bir çoklu indeksli pandalar veri çerçevem var diyelim.MultiIndex ile Pandalar veri çerçevesi: dize
import numpy as np
import pandas as pd
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, 4), index=arrays)
şöyle hangisi:
0 1 2 3
bar one -0.096648 -0.080298 0.859359 -0.030288
two 0.043107 -0.431791 1.923893 -1.544845
baz one 0.639951 -0.008833 -0.227000 0.042315
two 0.705281 0.446257 -1.108522 0.471676
foo one -0.579483 -2.261138 -0.826789 1.543524
two -0.358526 1.416211 1.589617 0.284130
qux one 0.498149 -0.296404 0.127512 -0.224526
two -0.286687 -0.040473 1.443701 1.025008
Şimdi sadece "ne" MultiIndex ikinci seviyede bulunan satırları istiyorum.
(Kısmen) bulunan dizeler için MultiIndex'i dilimlemenin herhangi bir yolu var mı?
Sen gibi bir maske uygulayabilirsiniz
Maskeyi iki seviyeye uygulamak da mümkün mü? Ben zaten denedim df = df.iloc [df.index.get_level_values (0) .str.contains ('ba'), df.index.get_level_values (1) .str.contains ('ne')] ama bu çalışmıyor. –
Sanırım bir boolean maskesi gibi df = df.iloc [(df.index.get_level_values (0) .str.contains ('ba')) | (Df.index.get_level_values (1) .str.contains ('ne'))] '. VEYA VE İhtiyacınız olan şeye bağlıdır. –