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

从DataFrame中删除名称包含特定字符串的列

娄阳舒
2023-03-14

我有一个具有以下列名的熊猫数据框:

结果1、测试1、结果2、测试2、结果3、测试3等。。。

我想删除名称中包含单词“Test”的所有列。此类列的数量不是静态的,而是取决于以前的函数。

我该怎么做?

共有3个答案

融建树
2023-03-14

在pandas的最新版本中,可以对索引和列使用字符串方法。在这里,str.startswith似乎很合适。

要删除以给定子字符串开头的所有列:

df.columns.str.startswith('Test')
# array([ True, False, False, False])

df.loc[:,~df.columns.str.startswith('Test')]

  toto test2 riri
0    x     x    x
1    x     x    x

对于不区分大小写的匹配,您可以使用基于正则表达式的匹配与str.contains与SOL锚:

df.columns.str.contains('^test', case=False)
# array([ True, False,  True, False])

df.loc[:,~df.columns.str.contains('^test', case=False)] 

  toto riri
0    x    x
1    x    x

如果可能存在混合类型,请同时指定na=False

郑博厚
2023-03-14
import pandas as pd

import numpy as np

array=np.random.random((2,4))

df=pd.DataFrame(array, columns=('Test1', 'toto', 'test2', 'riri'))

print df

      Test1      toto     test2      riri
0  0.923249  0.572528  0.845464  0.144891
1  0.020438  0.332540  0.144455  0.741412

cols = [c for c in df.columns if c.lower()[:4] != 'test']

df=df[cols]

print df
       toto      riri
0  0.572528  0.144891
1  0.332540  0.741412
仉昂熙
2023-03-14

这里有一个方法可以做到这一点:

df = df[df.columns.drop(list(df.filter(regex='Test')))]
 类似资料:
  • 问题内容: 我有一个带有以下列名称的pandas数据框: Result1,Test1,Result2,Test2,Result3,Test3等… 我要删除名称包含单词“ Test”的所有列。这样的列数不是静态的,而是取决于先前的功能。 我怎样才能做到这一点? 问题答案:

  • 问题内容: 所以我有以下格式的日志消息: 现在,我想删除所有不包含特定字符串“ xyz”的日志,并保留其余所有日志。我也想索引时间戳。 grokdebug没有太大帮助。 这是我的尝试: 我是新手,所以上面的模式可能没有意义。请帮忙。 问题答案: 要删除不包含字符串的消息: 您的骗子模式没有抓住日志的日期部分。 一旦在grok模式中有一个包含日期的字段,就可以在该字段上调用日期过滤器。 因此,您的g

  • 如何消除罗恩说了一句我不想说的话?我有这个数据框: 我正试图删除带有“esponja”字样的rown 我想要这样的数据帧: 我是新手,我不知道如何解决这个问题

  • 问题内容: 我正在尝试使用Python从字符串中删除特定字符。这是我现在正在使用的代码。不幸的是,它似乎对字符串没有任何作用。 如何正确执行此操作? 问题答案: Python中的字符串是不可变的(无法更改)。因此,的效果只是创建一个新字符串,而不是更改旧字符串。你需要重新绑定(分配)到line该变量,以使该变量采用新值,并删除这些字符。 而且,相对而言,你的操作方式会比较缓慢。这也可能会使经验丰富

  • 问题内容: 我有一个像这样的数组: 我要做的是删除“苹果”。 我的问题很基本,但是,我搜索了网站,发现java并不真正支持从数组中删除功能。我还听说过使用Java Utils,因为删除项目非常简单…。我试图在Google上找到Java Utils,但是几乎所有链接都消失了。 所以最后…有什么方法可以从字符串数组中删除字符串? 即使我使用ArrayList,也找不到在其中生成随机项的方法!例如:在普

  • 问题内容: 我需要从下面的变量值中删除括号“ [”和“]” ,并将结果存储在中。 使用,还是其他? 问题答案: 有几种可用的方法,有时可以使它们执行完全相同的任务,例如preg_replace / str_replace。但是,也许您只想从字符串的开头或结尾删除方括号;在这种情况下,preg_replace有效。但是,如果可能有多个括号,则preg_replace也可以完成这项工作。但是修剪更容易