在大Pandas中,如何获得满足一定条件的第一个项目?

2024-04-25 10:15:07 发布

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

我有以下代码:

grouped_stats = stats.groupby( stats.last_mv.ne( stats.last_mv.shift()).cumsum() )

最后一个是十进制值 在上面的代码中,我是按连续值分组的

我正在尝试两种方法来获得第一个值,该值比组中的第一个项目last\u mv值高0.25%。换句话说,我已经按连续的最后一个值分组,我要选择每组中的第一个,乘以1.025,然后在组中找到与该值匹配的第一个值(如果存在)

我试过:

grouped_stats.filter(lambda x: x.last_mv >= (x.first().last_mv * 1.025))

但是我无法使用.first()访问组中的第一行,因为我认为我不会

我也试过了

grouped_stats.loc[ grouped_stats.last_mv >= (grouped_stats.first().last_mv * 1.025) ]

但我得到一个错误:“无法访问'DataFrameGroupBy'对象的可调用属性'loc',请尝试使用'apply'方法”


Tags: 项目方法lambda代码shiftstatsfilterloc
1条回答
网友
1楼 · 发布于 2024-04-25 10:15:07

我相信您需要^{}对于Series使用与原始DataFrame大小相同的^{}填充每个组的第一个值:

stats[ stats.last_mv >= (grouped_stats.last_mv.transform('first') * 1.025) ]

相关问题 更多 >

    热门问题