gpt4 book ai didi

dataframe - 如何改变 DataFrame?

转载 作者:行者123 更新时间:2023-12-02 23:58:57 27 4
gpt4 key购买 nike

我正在尝试从数据框中删除一些列,并且不希望返回修改后的数据框并将其重新分配给旧数据框。相反,我希望该函数只修改数据框。这是我尝试过的,但它似乎并没有做我所除外的事情。我的印象是参数是作为引用传递的,而不是按值传递的?

function remove_cols! (df::DataFrame, cols)   
df = df[setdiff(names(df), cols)];
end

df = DataFrame(x = [1:10], y = [11:20]);
remove_cols!(df, [:y]); # this does not modify the original data frame

当然,下面的方法有效,但我更喜欢 remove_cols! 只是更改了 df

df = remove_cols!(df, [:y]);

如何更改函数内的 df?

谢谢!

最佳答案

据我了解,Julia 它使用所谓的共享传递,这意味着引用是按值传递的。因此,当您将 DataFrame 传递给函数时,会创建对该函数本地的 DataFrame 的新引用。当您重新分配本地 df 变量及其对 DataFrame 的引用时,它对单独的全局变量及其对 DataFrame 的单独引用没有影响。

有一个function in DataFrames.jl用于删除 DataFrame 中的列。

关于dataframe - 如何改变 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com