Vaex:将更改应用于选择

Vaex: apply changes to selection

我想使用 Vaex 选择行,修改该选择上某些列的值,并将更改应用于原始数据框。

我可以进行选择并对该选择进行更改,但如何才能将它们移植到原始数据框?

df = vaex.from_pandas(pd.DataFrame({'a':[1,2], 'b':[3,4]}))
df_selected = df[df.a==1]
df_selected['b'] = df_selected.b * 0 + 5


df_selected
#   a   b
0   1   5

df
#   a   b
0   1   3
1   2   4

到目前为止,我想到的唯一解决方案是获得两个互补选择,修改我感兴趣的一个,然后将其与另一个选择连接起来。有更直接的方法吗?

您可能正在寻找 where 方法。

我觉得应该是这样的:

df = vaex.from_pandas(pd.DataFrame({'a':[1,2], 'b':[3,4]}))
df['c'] = df.func.where(df.a==1, df.b * 0 + 5, df.a)

where 语法是 where(if, then, else)where(condition, if condition satisfied, otherwise).