首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在第一行号和第一次出现的字符串之间选择行

Python在第一行号和第一次出现的字符串之间选择行
EN

Stack Overflow用户
提问于 2022-05-30 23:45:07
回答 1查看 67关注 0票数 0

谢谢你帮我:

我有一些按日期排序的数据,并通过SQL分区按命令输入行号,就像下面的输出:

代码语言:javascript
复制
id  string_value  is_question  row_number
1   string-1          0             1
1   string-2          0             2
1   string-3          0             3
1   string-4          1             4
1   string-5          0             5
2   string-1          0             1
2   string-2          0             2
2   string-3          1             3
2   string-4          0             4
2   string-5          0             5
...

is_question表示此字符串具有我感兴趣的值​​。

问题是:如何在row_number​​=1(总是第一个)和is_question等于1(期望的结尾)之间选择行,输出为:

代码语言:javascript
复制
id  string_value  row_number
1   string-1         1
1   string-2         2
1   string-3         3
1   string-4         4
2   string-1         1
2   string-2         2
2   string-3         3
...
EN

回答 1

Stack Overflow用户

发布于 2022-05-31 00:02:57

一种方法是为每个row_number ( is_question1)查找1,然后(使用merge和筛选)删除row_number大于该id的每个id的所有行。例如:

代码语言:javascript
复制
questions = df[df['is_question'].eq(1)][['id', 'row_number']]
df1 = df.merge(questions, on='id', suffixes=['', '_y'])
df1[df1['row_number'] <= df1['row_number_y']].drop('row_number_y', axis=1)

输出

代码语言:javascript
复制
   id string_value  is_question  row_number
0   1     string-1            0           1
1   1     string-2            0           2
2   1     string-3            0           3
3   1     string-4            1           4
5   2     string-1            0           1
6   2     string-2            0           2
7   2     string-3            1           3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72440947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档