Вопрос

Given this DataFrame df, I want to dump rows containing the word Zmiana.

                                      Event   Q
0  Zmiana - I. Zigeranovic ZEJSCIE D. Kulig   1
1      Zmiana - T. Taylor ZEJSCIE M. Taylor   1
2                                       NaN   1
3            L. Jeter - niecelny rzut wolny   1

df = df[~df.Event.str.contains('Zmiana').fillna(False)]  # tilde takes the opposite

This raised me KeyError: '[-2 -2 -1 -1] not in index' all because of the NaN row.

Ignoring whether it is a bug, do you know a workaround?

Это было полезно?

Решение

I dumb down your example a bit. What you basically have is

df = pd.DataFrame(['aa', 'ab', 'c'], columns={'val'})
>>> df[df.val.str.contains('a').fillna(False)]
Out[737]: 
  val
0  aa
1  ab
>>> df[df.val.str.contains('a').fillna(False) == False]
Out[738]: 
  val
2   c

All that contains() returns is an array containing booleans - standard procedures are applicable.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top