Pandas 如何获取 DataFrame 中比当前行值大的数据个数?
pandas 获取比当前行值大的数据个数
本问题要求我们从给定 dataframe 中的 col3 列中,查找每个当前行值向上寻找到的第一个比当前值大的值的索引位置。
一个高效的解决方案是利用 numpy 的矩阵运算。具体步骤如下:
- 定义一个 lambda 函数 count_larger,用于计算一个数组中比其最后一个元素大的元素的个数。
- 使用列表解析生成 col4 列的值,其中 i 标识当前行索引。
- 使用 lambda 函数 count_larger,对 col3 列中从当前行到开头(含开头)的子数组进行计数。
import numpy as np df['col4'] = [count_larger(df[:i + 1]['col3'].values) for i in range(len(df))]
输出:
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
以上就是Pandas 如何获取 DataFrame 中比当前行值大的数据个数?的详细内容,更多请关注硕下网其它相关文章!