0

0

Pandas中如何高效查找比当前行值大的数据个数?

碧海醫心

碧海醫心

发布时间:2025-03-08 09:10:01

|

1020人浏览过

|

来源于php中文网

原创

pandas中如何高效查找比当前行值大的数据个数?

利用Pandas高效查找:找出DataFrame中比当前行'col3'列值大的数据个数

本文介绍一种高效方法,使用Pandas在DataFrame中,针对每一行查找'col3'列的值在之前所有行中比它大的值的个数,并将结果添加到新的'col4'列。

问题描述:给定包含'col1'、'col2'和'col3'三列的Pandas DataFrame,目标是为每一行添加'col4'列,'col4'的值表示从当前行向上查找,在遇到第一个比当前行'col3'列值大的值之前,中间有多少个值。

示例数据:

Sora
Sora

Sora是OpenAI发布的一种文生视频AI大模型,可以根据文本指令创建现实和富有想象力的场景。

下载
    col1  col2  col3
0    5.5   2.5  10.0
1    2.0   4.5   1.0
2    2.5   5.2   8.0
3    4.5   5.8   4.8
4    4.6   6.3   9.6
5    4.1   6.4   9.0
6    5.1   2.3   3.0
7    5.1   2.3  11.1
8    5.1   2.3  10.0
9    5.1   2.3  11.1
10   5.1   2.3  20.0
11   5.1   2.3  31.0
12   5.1   2.3   5.0

避免低效的循环方法,我们采用NumPy的向量化计算:

import numpy as np
import pandas as pd

data = [[5.5, 2.5, 10.0], [2.0, 4.5, 1.0], [2.5, 5.2, 8.0],[4.5, 5.8, 4.8], [4.6, 6.3, 9.6],[4.1, 6.4, 9.0],[5.1, 2.3, 3],[5.1, 2.3, 11.1],[5.1, 2.3, 10],[5.1, 2.3, 11.1],[5.1, 2.3, 20],[5.1, 2.3, 31],[5.1, 2.3, 5]]
df = pd.DataFrame(data, columns=['col1', 'col2', 'col3'])

df['col4'] = [np.sum(df['col3'][:i+1].values > val) for i, val in enumerate(df['col3'])]

print(df)

代码中,我们使用列表推导式和NumPy的sum()函数进行向量化计算,高效地计算每一行的'col4'值。

最终结果:

    col1  col2  col3  col4
0    5.5   2.5  10.0     0
1    2.0   4.5   1.0     0
2    2.5   5.2   8.0     1
3    4.5   5.8   4.8     0
4    4.6   6.3   9.6     3
5    4.1   6.4   9.0     0
6    5.1   2.3   3.0     0
7    5.1   2.3  11.1     7
8    5.1   2.3  10.0     0
9    5.1   2.3  11.1     1
10   5.1   2.3  20.0    10
11   5.1   2.3  31.0    11
12   5.1   2.3   5.0     0

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

51

2025.12.04

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

131

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

43

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号