문제

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