【发布时间】:2016-02-28 19:28:37
【问题描述】:
我有一个像这样子集的数据框:
a b x y
0 1 2 3 -1
1 2 4 6 -2
2 3 6 6 -3
3 4 8 3 -4
df = df[(df.a >= 2) & (df.b <= 8)]
df = df.groupby(df.x).mean()
如何使用 pandas 管道运算符来表达这一点?
df = (df
.pipe((x.a > 2) & (x.b < 6)
.groupby(df.x)
.apply(lambda x: x.mean())
【问题讨论】:
-
我不明白为什么在这里使用
pipe会有用。df[(df.a >= 2) & (df.b <= 8)].groupby('x').mean()会做同样的事情,不是吗? -
这是真的@jme,这是一个玩具示例,在我更大的代码中,我有更多的步骤。加上
.运算符让一切看起来更整洁。 -
这是似曾相识或duplicate :-)
-
基本上,“如何将
filter步骤放入pipe中?”