在dplyr中链接数据帧操作时,可以使用匿名依赖于当前数据帧的操作,这是一个简单的例子:
data.frame(x=3) %>% filter(x == 3) %>% mutate(x = x/sum(.$x))
在这里,我可以通过引用“。”对数据帧本身进行操作,直到链式操作。
使用方法链接在pandas中执行此操作的等效方法是什么?没有定义中间变量是否可能?
答案 0 :(得分:3)
在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]})
答案 1 :(得分:0)
对于 datar
,您可以使用 f
代词:
>>> from datar.all import f, tibble, filter, mutate, sum
>>>
>>> tibble(x=3) >> filter(f.x==3) >> mutate(x=f.x/sum(f.x))
x
<float64>
0 1.0
我是包的作者。如果您有任何问题,请随时提交问题。