pandas 是否有一个panda函数通过比较两个值来删除行

yi0zb3m4  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个DataFrame,其中有一列数字递增,表示一天中的秒数,如下所示:
| 索引|日秒数|
| - -|- -|
| 一个|第0页|
| 2个|10个|
| 三个|二十一个|
| 四个|二十三个|
| 五个|三十一个|
现在我想删除DataFrame的每一行,其中secOfDay与前一列的差异小于10。要使DataFrame看起来像这样:
| 索引|日秒数|
| - -|- -|
| 一个|第0页|
| 2个|10个|
| 三个|二十一个|
| 四个|三十一个|
对我来说,解决这个问题的唯一方法是循环。有没有办法在Pandas身上做得更优雅呢?
谢谢你的帮助!

oxosxuxt

oxosxuxt1#

示例

df = pd.DataFrame([0, 10, 21, 23, 26, 31, 43, 48, 61], columns=['sec'])

df

sec
0   0
1   10
2   21
3   23
4   26
5   31
6   43
7   48
8   61

代码

result = [df['sec'].iloc[0]]
for i in df['sec']:
    if i - result[-1] >= 10:
        result.append(i)

result

[0, 10, 21, 31, 43, 61]

使result成为 Dataframe

pd.DataFrame(result, columns=['sec'])

输出

sec
0   0
1   10
2   21
3   31
4   43
5   61

我本可以不用循环就做出来的,但它要混乱得多。我将感谢任何其他意见

相关问题