有条件地选择数据帧行的一部分

2024-06-08 15:18:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框:

In [75]:

x.head()
Out[75]:
         start    end   phone
  0      0       1600    /
  1      1600    1660    p
  2      1660    1720    e
  3      1720    1780    n
  4      1780    1850    e

我有起始编号和结束编号,我想选择这些编号之间的所有行。 例如,对于start=0和end=1720,我将得到前三行。在

我尝试了一种天真的方式:

^{pr2}$

但那当然没用。笨重的方法确实奏效了:

s = x[x.start==0].index
e = x[x.end==1720].index
x[s:e]

有没有一种更优雅的方法?在我看来,熊猫的问题是我猜不出那些优雅的方式。你只需要成为一个专业人士才能做一些事情,否则代码一定很难看。在


Tags: 数据方法inindex方式phoneout事情
1条回答
网友
1楼 · 发布于 2024-06-08 15:18:23

假设如此

some_start = 0
some_end = 1720

那么

^{pr2}$

注意,找到满足start值的索引,然后找到满足end值的索引的方法有一些缺点。它要求数据按两列按正确的顺序排序。如果cd4{s}不可能是一个重复的cd3}位置。在

相关问题 更多 >