我希望过滤一个dataframe并将一个值附加到dataframe中的一个新/现有列中。例如,在下面的dataframe中,我希望将值0.7附加到月份值等于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)但我不知道如何在朱莉娅身上实现这一点?有什么想法吗?

发布于 2020-12-21 11:42:43
df[df.month .== 11, :pre_mean] .= 0.7这应该能行。
发布于 2020-12-21 11:52:05
同样,问题中的答案几乎是正确的:
df.pre_mean .= ifelse.(df.month .== 11, 0.7, df.premean)它应该比@Andy_101提出的解决方案更快(这也是正确的),因为它没有分配。
另外请注意,df[:pre_mean]在DataFrames.jl中是不允许的。数据帧是一个二维对象,所以您必须同时传递行和列选择器(除非您使用getproperty方法,比如@Andy_101和of的答案)。
https://stackoverflow.com/questions/65392040
复制相似问题