如何获得符合条件的大熊猫中的第一批物品?

时间:2018-12-06 12:56:50

标签: python python-3.x pandas

我有以下代码:

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

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

我正在尝试两种方法来获取组last_mv值中的第一项高出0.25%的第一值。换句话说,我已按连续的last_mv值分组,我想选择每个组的第一个,乘以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'方法”

1 个答案:

答案 0 :(得分:2)

我相信您需要transform用于Series,其大小与原始DataFrame相同,并按每组的第一个值填充:

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