当前位置: 首页 > 知识库问答 >
问题:

从数据帧索引筛选包含字符串模式的行

丰景同
2023-03-14

我需要从Pandas数据框索引中过滤包含字符串模式的行。

我发现了下面的示例:如何从熊猫数据帧中筛选包含字符串模式的行,其中数据帧使用df[df[“col”].str.contains()]进行过滤,这在本示例中效果很好。

df = pd.DataFrame({'vals': [1, 2, 3, 4], 'ids': [u'aball', u'bball', u'cnut', u'fball']})

在本例中,如果我将列id复制到索引,我可以使用df.index.str.contains(ball),这也可以正常工作。

但是,当我使用df时。指数str.contains(“示例”)在我的数据帧中不起作用。

我认为它不起作用,因为在我的数据帧中,返回的值不是数组([True,False…,True],dtype=bool),而是索引([True,False…,True],dtype='object',length=667)

如何重新编写代码以使其正常工作?

我不粘贴我的数据框,因为我从一个大的excel表中读取它。

非常感谢。

共有1个答案

叶稳
2023-03-14

您应该确保索引是字符串。下面的示例产生一个错误。

# Test data
df = DataFrame([1,2,3,4], index=['foo', 'foo1', 'foo2', 1], columns=['value'])
df[df.index.str.contains('foo')]

将索引转换为str可以获得预期结果。

df.index = df.index.astype('str')
df[df.index.str.contains('foo')]

      value
foo       1
foo1      2
foo2      3
 类似资料:
  • 假设Python中有一个如下所示的数据帧: 或者,以表格形式: 如何筛选包含关键字“ball”的行?例如,输出应为:

  • 我有两个形状相同的python数据帧,例如: 我想使用df2中的值作为行索引来选择df1中的值,并创建一个形状相等的新数据帧。预期结果: 我已尝试使用.loc,它在单个列中运行良好: 但是我不能同时在所有列上使用. loc或. iloc。我想避免循环来优化性能,因为我正在处理一个大数据帧。有什么想法吗?

  • 我使用的是Spark 1.3.0和Spark Avro 1.0.0。我从存储库页面上的示例开始工作。以下代码运行良好 但是如果我需要查看doctor字符串是否包含子字符串,该怎么办?因为我们是在字符串中编写表达式。我该怎么做“包含”?

  • 本文向大家介绍在 JavaScript 中包含唯一字符的筛选字符串,包括了在 JavaScript 中包含唯一字符的筛选字符串的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个 JavaScript 函数来接受一个字符串 str。我们的函数应该构造一个只包含输入字符串中唯一字符的新字符串,并删除出现的所有重复字符。 示例 以下是代码- 输出结果 以下是控制台输出-

  • 我的表格是用啤酒名称编制索引的。我通过以下代码获得了前三个啤酒名称。 结果是< code>['Rodenbach Caractère Rouge ',' Dorothy(酒桶陈年)',' Doubleganger'] 但是,当我尝试使用选择行时,它给了我一个键错误。 KeyError Traceback(最近一次调用最后一次)~\Anaconda3\lib\site packages\pandas

  • 我想从包含单词Evil(filterString)的数组中删除一些元素。 以下是我从原始阵列(来宾)获得的信息: 只希望客人数组更新一旦所需的字符串(邪恶)被过滤。