社区首页 >问答首页 >如何过滤列中包含特定字符串的两行之间的数据格式列?

如何过滤列中包含特定字符串的两行之间的数据格式列?
EN

Stack Overflow用户
提问于 2022-04-21 10:39:02
回答 4查看 722关注 0票数 1

我正在试图了解如何只选择数据rows中位于两个特定行之间的行。这些行在其中一个列中包含两个特定的字符串。我将用这个例子作进一步的解释。

我有以下数据:

代码语言:javascript
代码运行次数:0
复制
       String      Value
-------------------------
 0       Blue         45     
 1        Red         35   
 2      Green         75    
 3      Start         65   
 4     Orange         33   
 5     Purple         65   
 6       Teal         34
 7     Indigo         44
 8        End         32
 9     Yellow         22 
10        Red         14

在"String“列中只有一个"Start”实例和一个"End“实例。我只想要在"String“列中包含"Start”和“to”的行之间的这个dataframe行,因此我希望生成这个输出dataframe:

代码语言:javascript
代码运行次数:0
复制
       String      Value
-------------------------  
 3      Start         65   
 4     Orange         33   
 5     Purple         65   
 6       Teal         34
 7     Indigo         44
 8        End         32

另外,我想保持我保存的行的顺序,因此保持“开始”、“橙色”、“紫色”、“提尔”、“靛蓝”、“结束”的顺序。

我知道我可以通过以下操作来索引这些特定的列:

代码语言:javascript
代码运行次数:0
复制
index_start = df.index[df['String'] == 'Start']
index_end = df.index[df['String'] == 'End']    

但我不知道如何实际过滤掉这两个字符串之间的所有行。我如何在python中实现这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-04-21 10:57:37

如果两个值都存在,则临时将"String“设置为索引:

代码语言:javascript
代码运行次数:0
复制
df.set_index('String').loc['Start':'End'].reset_index()

产出:

代码语言:javascript
代码运行次数:0
复制
   String  Value
0   Start     65
1  Orange     33
2  Purple     65
3    Teal     34
4  Indigo     44
5     End     32

或者,使用isin (然后开始/结束的顺序无关紧要):

代码语言:javascript
代码运行次数:0
复制
m = df['String'].isin(['Start', 'End']).cumsum().eq(1)
df[m|m.shift()]

产出:

代码语言:javascript
代码运行次数:0
复制
   String  Value
3   Start     65
4  Orange     33
5  Purple     65
6    Teal     34
7  Indigo     44
8     End     32
票数 3
EN

Stack Overflow用户

发布于 2022-04-21 10:53:55

这应该足够了,当您尝试按索引定位行时,iloc[]是有用的,它的工作方式与列表中的片相同。

代码语言:javascript
代码运行次数:0
复制
index_start = df.index[df['String'] == 'Start']
index_end = df.index[df['String'] == 'End']  
df.iloc[index_start[0]:index_end[0]+1]

更多信息:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html

票数 3
EN

Stack Overflow用户

发布于 2022-04-21 10:50:17

您可以使用eq + cummax和filter构建布尔掩码:

代码语言:javascript
代码运行次数:0
复制
out = df[df['String'].eq('Start').cummax() & df.loc[::-1, 'String'].eq('End').cummax()]

输出:

代码语言:javascript
代码运行次数:0
复制
   String  Value
3   Start     65
4  Orange     33
5  Purple     65
6    Teal     34
7  Indigo     44
8     End     32
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71959399

复制
相关文章
Ngnix如何处理http请求
nginx首先确定哪个服务器应处理该请求。让我们从一个简单的配置开始,其中所有三个虚拟服务器都在端口*:80上侦听:
星哥玩云
2022/08/08
9470
测试中如何处理 Http 请求?
不知道大家平时写单测时是怎么处理 网络请求 的,可能有的人会说:“把请求函数 Mock ,返回 Mock 结果就行了呀”。
写代码的海怪
2022/08/31
1.3K0
[CodeIgniter4]概述-处理 HTTP 请求
为了充分地使用 CodeIgniter,你需要对 HTTP 请求和响应的工作方式有基本的了解。对于所有想要成功的开发者来说, 理解 HTTP 背后的概念是 必须 的。
landv
2020/03/05
1.9K0
Http请求处理流程
我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。
张子阳
2018/09/27
1.3K0
Http请求处理流程
如何使用Java处理HTTP请求和响应?
Java中有许多成熟的HTTP框架可以使用,例如Spring、Netty等。这些框架提供了各种HTTP处理器和工具类,使得HTTP请求和响应处理变得更加容易和高效。下面是一个简单的Java代码示例,演示如何使用Java处理HTTP请求和响应:
用户1289394
2023/08/22
6540
如何使用Java处理HTTP请求和响应?
图解 Spring:HTTP 请求的处理流程与机制【1】
2003 年,老兵哥初到中兴开始研究生实习,Spring 就是那年诞生的,2004 年 3 月发布了 1.0 版本,到现在已经超过 15 年了。从单体式分层架构到云原生微服务架构,它稳坐在 JAVA 应用框架的头把交椅上从未被撼动,它给我们带来了巨大的价值,不仅可以降低开发难度,同时还可以提升开发效率。但时间这把杀猪刀不仅改变了老兵哥,也同样没放过 Spring,我们都变得越来越强大了。
IT老兵哥
2020/01/15
1K0
图解 Spring:HTTP 请求的处理流程与机制【1】
RxJS 处理多个Http请求
有时候进入某个页面时,我们需要从多个 API 获取数据然后进行页面显示。管理多个异步数据请求会比较困难,但我们可以借助 Angular Http 服务和 RxJS 库提供的功能来实现上述的功能。处理多个请求有多种方式,使用串行或并行的方式。
阿宝哥
2019/11/05
5.8K0
NodeJS源码解析--Node如何处理HTTP请求
看过我之前的写的文章的朋友们应该会知道,使用NodeJS创建一个HTTP服务器是非常简单的。我们写的一个个API中使用req来接收请求,使用res来响应请求。那么req/res参数从何而来?http的头部信息是如何进行创建呢?接下来我们来从源码角度分析:NodeJS究竟是如何处理一个HTTP请求。
创译科技
2019/07/10
2.2K0
NodeJS源码解析--Node如何处理HTTP请求
HTTP请求与响应处理
客户端向服务器端发送请求时,有时需要携带一些客户信息,客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。
Qwe7
2022/04/22
8690
HTTP请求与响应处理
客户端向服务器端发送请求时,有时需要携带一些客户信息, 客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。
清出于兰
2020/10/29
9490
HTTP请求与响应处理
Influxdb的Http请求处理流程
3.4 关键函数之s.serverTCP(),使用之前初始化的listener和handler启动真正的http服务
扫帚的影子
2018/12/13
1.1K0
HTTP跨域请求后台处理
字面意思就是从Y域中去Http请求X域的后台,但是请求反馈的资源的Http头中没有包含'Access-Control-Allow-Origin'内容,什么意思呢?
Cloudox
2021/11/23
7850
【http 请求返回状态码 500 】 Spring Boot 模拟http请求「建议收藏」
最近弄的项目中要求给另外一个服务器传送数据,预定是用http的方式,在开始动手之前我打算用Spring Boot模拟下服务器之间的请求
全栈程序员站长
2022/08/31
3.3K0
【http 请求返回状态码 500 】 Spring Boot 模拟http请求「建议收藏」
面试官:tomcat是如何处理http请求的?
因为tomcat实现了Servlet规范,所以我们得掌握什么是Servlet?什么是Servlet规范? 什么是Servlet呢? Servlet是JavaEE规范的一种,主要是为了扩展Java作为W
田维常
2021/01/28
9000
Fiddler怎么抓取Net程序内部的Http请求包
(Fiddler是通过在本机计算器添加一个默认的代理服务器来实现的抓包数据的,端口号为:8888)
西柚dzh
2022/06/09
9260
Fiddler怎么抓取Net程序内部的Http请求包
python 3 处理HTTP 请求的包
http: https://docs.python.org/3/library/http.html
py3study
2020/01/03
1.2K0
Python处理HTTP请求之requests指北
如果你需要在Python中进行HTTP请求的处理,有很多种方式可以使用。比较原始的有Python的内置库urllib、也有比较高级一点的第三方模块aiohttp。
州的先生
2020/09/16
3.7K0
Python处理HTTP请求之requests指北
4 OpenResty & Lua 处理各类Http请求
测试有不同的结果,form-data数据是混乱的,x-www-form-urlencoded才是正常的!
收心
2022/08/24
1.9K0
4 OpenResty & Lua 处理各类Http请求
HTTP请求的11个处理阶段
摘自 陶辉 深入理解Nginx 几乎所以有关Nginx书只要是讲深入点的就会讲到Nginx请求的11个处理阶段,要记住这些真是不易,人脑特别不擅长记住各种东西,只能做些索引罢了,能做到知道这个知识点在哪儿能找到不就行了,可是你去面试还是问这些理论,所以这里汇总下记录如下 ngx_http_phases阶段定义 typedef enum { // 在接收到完整的HTTP头部后处理的HTTP阶段 NGX_HTTP_POST_READ_PHASE = 0, /*在将请求的URI与l
三杯水Plus
2019/03/14
5960
点击加载更多

相似问题

如何在Spring中处理HTTP选项请求?

31

用tomcat和spring异步处理http请求

12

Spring boot同时处理http和HTTPS请求

20

如何在Spring中分析复杂的http请求处理?

30

Spring Boot Web:停止当前http请求处理

1163
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文