Python 熊猫中的方法链接时如何引用中间数据帧?
在dplyr中链接数据帧操作时,可以使用匿名依赖于当前数据帧的操作,例如:Python 熊猫中的方法链接时如何引用中间数据帧?,python,r,pandas,dplyr,Python,R,Pandas,Dplyr,在dplyr中链接数据帧操作时,可以使用匿名依赖于当前数据帧的操作,例如: data.frame(x=3) %>% filter(x == 3) %>% mutate(x = x/sum(.$x)) 在这里,我可以通过引用对数据帧本身进行操作,直至链接操作 使用方法链接在熊猫中实现这一点的等效方法是什么?可以不定义中间变量吗?在python中 df[df.W01.eq(3)].assign(x=df[df.W01.eq(3)].W02.transform(lambda x : x/
data.frame(x=3) %>% filter(x == 3) %>% mutate(x = x/sum(.$x))
在这里,我可以通过引用对数据帧本身进行操作,直至链接操作
使用方法链接在熊猫中实现这一点的等效方法是什么?可以不定义中间变量吗?在python中
df[df.W01.eq(3)].assign(x=df[df.W01.eq(3)].W02.transform(lambda x : x/sum(x)))
Out[873]:
W01 W02 x
0 3 1 0.333333
1 3 1 0.333333
2 3 1 0.333333
说明:
df[df.W01.eq(3)] : filter(x == 3)
.assign(x=df[df.W01.eq(3)].W02.transform(lambda x : x/sum(x))) : mutate(x = x/sum(.$x))
数据输入
df = pd.DataFrame({'W01': [3,3,3,2], 'W02': [1,1,1,999]})
在中,您可以使用f
代词:
>>来自datar.all导入f、tible、filter、mutate、sum
>>>
>>>tibble(x=3)>>过滤器(f.x==3)>>变异(x=f.x/sum(f.x))
x
0 1.0
我是这个包裹的作者。如果您有任何问题,请随时提交问题。和R:
transform(df[df$W01==3,],X=W02/sum(W02))
…很高兴看到一位同时涉足这两个领域的用户@冻糕,只要认为R和Python是相同的~:-)。分配accept lambdas就是为了这个原因,仅供参考;您正在重复Selection这似乎不是很好地概括,因为它依赖于重复assign操作中的所有转换。在这个简单的例子中,这是很好的,但是如果你在前面加上5或6个操作,那么用这种方式写它是非常难看的(虽然不是不可能的)。