无法使用波形符号(〜)来过滤DataFrame

时间:2014-05-05 13:07:40

标签: python pandas dataframe

鉴于此DataFrame df,我想转储包含单词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

由于KeyError: '[-2 -2 -1 -1] not in index'行,这引起了我NaN

忽略它是否是一个bug,你知道一个变通方法吗?

1 个答案:

答案 0 :(得分:1)

我愚蠢地说了一下你的例子。你基本上拥有的是

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

contains()返回的所有内容都是包含布尔值的数组 - 标准程序适用。