2016-04-07 14 views
0

Ich muss entscheiden, ob die Werte einer bestimmten Spalte (df['some_col']) in einem Datenrahmen nur eine bestimmte Menge von Werten enthält (zB 'a' , leere Zeichenfolge und NaN dh ["a","",NaN]). Ich kann an unique denken, um alle eindeutigen Werte aufzulisten und zu überprüfen, ob es irgendeinen Wert gibt, der nicht in der vordefinierten Menge ist, aber ich bin nicht sicher, ob NaN als Wert betrachtet wird oder nicht.Wie überprüft man, ob eine Spalte in einem Datenrahmen nur eine bestimmte Menge von Werten enthält

Antwort

2

ja, können Sie unique() dafür verwenden:

In [35]: w 
Out[35]: 
    word 
0 word03 
1  NaN 
2 word04 
3 
4 word02 
5 word01 
6  NaN 
7 word01 
8 word01 
9 word01 

In [36]: w.word.unique() 
Out[36]: array(['word03', nan, 'word04', '', 'word02', 'word01'], dtype=object) 

so Sets verwenden wir den Unterschied zwischen erlaubt/erwarteten Strings und Strings im DF sehen:

In [45]: allowed_words = set(['','word01', np.nan]) 

In [46]: set(w.word.unique()) - allowed_words 
Out[46]: {'word02', 'word03', 'word04'} 
Verwandte Themen