在熊猫过滤期间返回KeyError

时间:2020-05-04 14:32:49

标签: python pandas

我正在尝试过滤两列。我正在寻找Col1Col2中包含单词"car washing""train"的行。

我尝试如下:

filtered=df[df['Col1','Col2'].str.lower().str.contains('car washing','train')]

但是,我遇到了以下错误:

  2645             try:
-> 2646                 return self._engine.get_loc(key)
   2647             except KeyError:
...

KeyError: ('Col1', 'Col2')

能否请您告诉我为什么会收到此错误以及如何解决?

谢谢

2 个答案:

答案 0 :(得分:3)

您可以这样做:

filtered=df[df[['Col1','Col2']].sum(axis=1).str.contains('car washing|train', case=False)]

答案 1 :(得分:0)

此处的KeyError最有可能是指名称为'Col1'和'Col2'的列不存在。导入数据集时,可以使用sep ='\ s *,\ s *'处理列名中的空格。请参阅:Key error when selecting columns in pandas dataframe after read_csv