Dataframe 筛选行和附加值

Dataframe 筛选行和附加值,dataframe,julia,Dataframe,Julia,我想筛选一个数据帧,并将一个值附加到数据帧中的新/现有列。例如,在下面的dataframe中,我想在列pre mean中添加一个值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 pyth

我想筛选一个数据帧,并将一个值附加到数据帧中的新/现有列。例如,在下面的dataframe中,我想在列pre mean中添加一个值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)
但我不知道如何在朱莉娅身上做到这一点?有什么想法吗


这应该行得通。

问题的答案几乎是正确的:

df.pre_mean .= ifelse.(df.month .== 11, 0.7, df.premean)
这应该比@Andy_101提出的解决方案(这也是正确的)更快,因为它不分配资源

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

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