在多列中查找字符串?

2023-12-01

我有一个包含 3 列 tel1、tel2、tel3 的数据框 我想保留一列或多列中包含特定值的行:

例如,我想保留列 tel1 和 tel2 或 tel3 以“06”开头的行

我怎样才能做到这一点 ? 谢谢


让我们用这个df作为示例数据框:

In [54]: df = pd.DataFrame({'tel{}'.format(j): 
                            ['{:02d}'.format(i+j) 
                             for i in range(10)] for j in range(3)})

In [71]: df
Out[71]: 
  tel0 tel1 tel2
0   00   01   02
1   01   02   03
2   02   03   04
3   03   04   05
4   04   05   06
5   05   06   07
6   06   07   08
7   07   08   09
8   08   09   10
9   09   10   11

您可以找到其中的值df['tel0']以。。开始'06' using StringMethods.startswith:

In [72]: df['tel0'].str.startswith('06')
Out[72]: 
0    False
1    False
2    False
3    False
4    False
5    False
6     True
7    False
8    False
9    False
Name: tel0, dtype: bool

要将两个布尔系列与逻辑或组合起来,请使用|:

In [73]: df['tel0'].str.startswith('06') | df['tel1'].str.startswith('06')
Out[73]: 
0    False
1    False
2    False
3    False
4    False
5     True
6     True
7    False
8    False
9    False
dtype: bool

或者,如果您想使用逻辑或组合布尔系列列表,您可以使用reduce:

In [79]: import functools
In [80]: import numpy as np
In [80]: mask = functools.reduce(np.logical_or, [df['tel{}'.format(i)].str.startswith('06') for i in range(3)])

In [81]: mask
Out[81]: 
0    False
1    False
2    False
3    False
4     True
5     True
6     True
7    False
8    False
9    False
Name: tel0, dtype: bool

一旦你有了布尔值mask,您可以使用选择关联的行df.loc:

In [75]: df.loc[mask]
Out[75]: 
  tel0 tel1 tel2
4   04   05   06
5   05   06   07
6   06   07   08

注意还有很多其他的向量化 str 方法除了开始。 你可能会发现str.contains对于查找哪些行很有用contain一个字符串。注意str.contains默认情况下将其参数解释为正则表达式模式:

In [85]: df['tel0'].str.contains(r'6|7')
Out[85]: 
0    False
1    False
2    False
3    False
4    False
5    False
6     True
7     True
8    False
9    False
Name: tel0, dtype: bool
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在多列中查找字符串? 的相关文章

随机推荐

  • 按mysql中select语句“in”子句中的值顺序排序

    我正在从一个具有整数 id 值的大表 数百万行 中选择一组帐户记录 从某种意义上说 这是一个基本的查询 我正在做的事情是构建一个大的逗号分隔列表 并将其作为 in 子句传递到查询中 现在的结果是完全无序的 我想做的是按照 in 子句中的值的
  • 当为 WinHTTPRequest 指定事件处理程序前缀时,WScript.CreateObject 会使 Windows 脚本主机崩溃

    根据MSDN 文档WinHTTPRequest 有四个事件处理程序 应该可以通过指定事件处理程序前缀来访问它们 不幸的是 这样做会导致 Windows Scripting Host 崩溃 以下代码使 Windows 脚本主机崩溃 Set o
  • window.prompt和prompt之间有什么真正的区别吗?

    只是出于好奇 window prompt 和 JavaScript 中的提示之间有什么区别吗 对于老师使用的我的考试问题的答案之一 var yourName window prompt Please enter your first nam
  • 如何在knitr的pdf输出中保持带有图形标题的图形位置?

    我正在使用knitr 1 9 5和1 9 17 和rmarkdown 0 5 3 1 并且想在pdf输出中保留图形位置 当 chunk 选项时 生成的 pdf 文件工作正常fig pos H 用来 然而 当fig caption yes被设
  • 一页上有多个倒计时器

    目前正在开发一个需要在一页上有两个计时器的项目 定时器需要有一个启动按钮 并且两者都有不同的计时 即定时器 1 持续 10 秒 定时器 2 持续 20 秒 这是我正在使用的脚本 但我不知道如何复制计时器并让每个计时器独立工作 有没有人可以轻
  • php、文件下载

    我正在使用简单的文件下载脚本 if file exists file header Content Description File Transfer header Content Type application octet stream
  • R Shiny 保存反应性 ggplots

    我试图弄清楚如何在我的 R Shiny 项目中保存反应性 ggplots 我已经关注了this指南以及 R Shiny 网站上的指南 但是 我认为我可能遇到问题 因为我使用的是反应图 这是我到目前为止的代码 ui lt fluidPage
  • 如何将对象中数组的索引值添加到键

    我在变量中有一个对象info as 0 ProId Space Name cake Quantity 1 1 ProId new Name walk Quantity 1 我正在尝试将数量值更改为index 1对于每个索引 我尝试将静态值设
  • 如何使用 CASE 更新 MySQL 中的条目以获得新值?

    谁能告诉我如何解决这个查询 update ae44 set Price Case when ID AT259793380 then 500 when ID AT271729590 then 600 when ID AT275981020 t
  • 将数据变量传递给 R 公式

    假设我想写anscombe gt lm tidy x1 y1 其实我想写anscombe gt lm tidy x1 y1 where x1 and y1是数据框的一部分 因此 由于以下功能似乎有效 plot gg lt function
  • 如何将文本添加到按钮上方的 Inno Setup 斜线?

    如何将文本添加到按钮上方的 Inno Setup 斜线 来自 Inno Setup 帮助 特殊用途的 BeveledLabel 消息可用于指定一条线 向导窗口左下角显示的文本 和卸载程序窗口 下面是一个例子 Messages Beveled
  • 如何在 Swift 中使用命名空间?

    文档只提到了嵌套类型 但不清楚它们是否可以用作命名空间 我没有发现任何明确提及名称空间的内容 我认为 Swift 的命名空间是令人向往的 它的大量广告与实际情况不符 例如 WWDC 视频指出 如果您导入的框架有一个 MyClass 类 并且
  • Python Max/Min 函数中的 iter 和 key 如何工作? [复制]

    这个问题在这里已经有答案了 我对 Python 比较陌生 我一直在阅读各种内置函数的文档 当涉及到最大 最小函数时 max arg1 arg2 args key or max iterable key 我知道 arg1 arg2 等或 it
  • Jquery - 我不应该重复选择器(存储在变量中)吗?

    有时我发现自己多次重复选择器 我是否应该以某种方式将 jquery 对象存储到变量中 然后只使用该变量 举个简单的例子 以下内容怎么样 a contactus css padding 10px a contactus css margin
  • 我可以使用 lambda 重写 JDK8 中功能接口的 toString 方法吗?

    这个问题在这里已经有答案了 我可以重写功能接口的 toString 方法吗 或者改写一下 是否有优雅的方法来更改实现函数式接口并使用 lambda 重写 toString 方法的匿名内部类 当我在JDK8中创建lamba表达式时 我可以覆盖
  • python 对象到本机 c++ 指针

    我正在考虑使用 python 作为我正在从事的项目的嵌入式脚本语言 并且已经完成了大部分工作 但是我似乎无法将 python 扩展对象转换回本机 c 指针 这是我的课 class CGEGameModeBase public virtual
  • 寻找衍生脚本

    我正在拼命寻找可以计算函数一阶导数的 JavaScript 该函数始终仅包含一个变量 x e g f x x f 3 2x 因此 脚本应提供结果 6 因为2 3 6 我希望你明白我的意思 function slope f x dx dx d
  • .NET 在服务器上创建计划任务失败并显示 E_ACCESSDENIED

    我有一个 ASP NET 网站 C 语言 它接收用户数据 然后尝试创建 Windows 计划任务 当然 这在 DEV 机器上运行得很好 但在服务器上运行失败 我试图弄清楚 ASPNET 用户 或匿名 Web 用户 需要什么权限才能创建任务
  • 在 C++ 上解析 JSON 文件并获取主键的所有子文件[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我使用 boost 库 需要在 C 上解析一些 json 文件 对于前 json 部分 media Test1 https storage tst Test2 https sto
  • 在多列中查找字符串?

    我有一个包含 3 列 tel1 tel2 tel3 的数据框 我想保留一列或多列中包含特定值的行 例如 我想保留列 tel1 和 tel2 或 tel3 以 06 开头的行 我怎样才能做到这一点 谢谢 让我们用这个df作为示例数据框 In