2015-09-23 11 views
10

1:Çok-dizinli bir Panda veri tabanında bir değerden daha büyük hücreler nasıl seçilir?

df[ df > 1.0 ]: Bu, tüm hücreleri NAN içinde döndürdü.

Try2:

df.loc[ df > 1.0 ]: Bu

df[df['A']> 1.0]KeyError: 0 döndürdü: Bu işleri - Ama tüm sütunlara filtre koşulunu uygulamak istiyoruz.

+1

Ne filtre koşulu uygulamak istiyorsun, bir örnek 'df' nedir ve çıktı olarak neyi bekliyoruz? Bütün df için denerken, sadece bazı sütunların koşulu yerine getirdiği bazı satırlar olacaktır (ve tersi), bu durumda koşulun yerine getirilmediği yerler için, "NaN" ile değiştirilir. –

+0

Herhangi bir sütunun durumu karşıladığı satırları seçmeye mi çalışıyorsunuz? veya tüm sütunlar bu durumu karşılar mı? –

+0

@AnandSKumar Herhangi bir sütunun durumu karşıladığı satırları seçmek istiyorum. Sorduğunuz için teşekkürler. – Rex

cevap

12

Yapmaya çalıştığınız şey, yalnızca bir sütunun koşulla karşılaştığı satırları seçmekse, ile birlikte axis=1 (satır aralığı gruplaması yapmak için) kullanabilirsiniz. Örnek - tüm sütunları şartı yerine satırları filtrelemek için çalışıyorsanız

In [3]: df 
Out[3]: 
    A B C 
0 1 2 3 
1 3 4 5 
2 3 1 4 

In [6]: df[(df <= 2).any(axis=1)] 
Out[6]: 
    A B C 
0 1 2 3 
2 3 1 4 

Alternatif, .any() ait .all() INPLACE kullanın. all Örneği -

In [8]: df = pd.DataFrame([[1,2,3],[3,4,5],[3,1,4],[1,2,1]],columns=['A','B','C']) 

In [9]: df 
Out[9]: 
    A B C 
0 1 2 3 
1 3 4 5 
2 3 1 4 
3 1 2 1 

In [11]: df[(df <= 2).all(axis=1)] 
Out[11]: 
    A B C 
3 1 2 1 
+3

Bu, veri çerçevesinin çoklu dizine sahip olduğu soruyu yanıtlamaz. – Elliott

İlgili konular