过滤行和附加值

我想过滤数据帧并将值附加到数据帧中的新/现有列。例如,在下面的数据框中,我想将 0.7 的值附加到列 pre-mean 中,其中月份值等于 11。所以换句话说,pre_mean 列的第 2 到 5 行应该包含 0.7 的值,而所有其他列都应该有一个 NaN 值。

我试过这样的事情,但当然这是不正确的。

df[:pre_mean] = ifelse.(df[:month] .== 11, 0.7, df)

在 python 中,你可以使用 pd.apply 或 np.where 函数来做到这一点,

#How to do in python
df["pre_mean"] = np.where(df["month"] == 11, 0.7, None)

但我不知道如何在 Julia 中实现这一目标?有任何想法吗?

回答

df[df.month .== 11, :pre_mean] .= 0.7

这应该有效。


回答

此外,问题中的答案几乎是正确的:

df.pre_mean .= ifelse.(df.month .== 11, 0.7, df.premean)

这应该比@Andy_101(这也是正确的)提出的解决方案更快,因为它没有分配。

作为旁注,注意df[:pre_mean]在 DataFrames.jl中是不允许的。数据框是一个二维对象,因此您必须同时传递行和列选择器(除非您使用getproperty@Andy_101 和我的答案中的方法)。


以上是过滤行和附加值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>