请教pandas中.groupby(g).transform('size')的功能含义
关于pandas中
groupby.transform('size')的解惑 你之前的问题是:在当前位置之前<=2行存在1的条件下回填数据,现在重读解答时对代码df.groupby(g).transform('size').le(N+1)里的.transform('size')有疑问,这里给你拆解清楚:
groupby.transform()的核心逻辑是:对每个分组执行指定操作后,把结果扩展成和原DataFrame/Series行数一致的结构,每个位置对应其所在分组的计算结果。- 这里的
'size'是指定调用分组的size()方法,也就是计算每个分组包含的行数(元素数量)。举个简单例子:如果你的DataFrame被分成了两个组,A组有3行,B组有5行,那么transform('size')会返回一个和原DataFrame行数相同的Series,A组的3行都对应值3,B组的5行都对应值5。 - 结合你原问题的场景:这里的
g应该是按“1出现的位置”划分的分组,transform('size')得到每个组的总长度,再用.le(N+1)(N对应你问题里的2)判断当前行是否处于组内的前3个位置,以此来限定“当前位置之前<=2行有1”的回填范围。
内容的提问来源于stack exchange,提问作者aaaahhhhhh
相关产品推荐
相关产品推荐

