dataframe - 迭代 Dataframe 以添加一个

标签 dataframe julia

这是在 Julia 1.1.1 中完成的 在 Windows 10 计算机上。

我正在使用数据框 df,以 pmid 作为行名,以 unique(features) 作为列名。另外我还有另一个变量pmids,pmids[i]对应features[i]。

我正在尝试迭代这个数据帧,其中每个单元格都为 0。根据功能是否出现向单元格添加 1,以便计算每个 pmid 的功能提及次数。为了做到这一点,我使用了以下 for 循环。

feature_ids = unique(features)
df = hcat(df, initialize_df(feature_ids, nrow(df), 0))
for i in 1:length(features)
  pmid = pmids[i]
  feature = features[i]
  df[df[:,:pmid] .== pmid, Symbol(feature)] .+= 1
end

在 Julia v0.6.2 中,这有效,但是在 Julia v1.1.1 中,当我查看数据帧时,for 循环后它仍然由零填充。关于我做错了什么的任何想法

最佳答案

这很可能是应该解决的问题:

for i in 1:length(features)
  pmid = pmids[i]
  feature = features[i]
  v = view(df, df[:,:pmid] .== pmid, Symbol(feature))
  v .+= 1
end

您的代码无法完全重现,因此我无法对其进行测试。几个小时后(希望)我将发布 DataFrames.jl 包的新版本,您的旧代码将在其中按预期工作。

编辑:在 DataFrames.jl v0.19 下,您的旧代码应该可以正常工作。

关于dataframe - 迭代 Dataframe 以添加一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57010340/

相关文章:

Python:如何从大字典中存在的2个键生成DataFrame

python - Pandas 中的 Groupby,用 [] 填充缺失的组

Python pandas 线性回归 groupby

julia - 在 Julia 中连接数组

julia - 不精确错误 : Int64 even when checking divisibility

julia - 合适的数据结构可在 Julia 中获得广泛数据的性能优势

python - 在 python pandas 中通过索引减去数据帧(python pandas)的行的最有效方法是什么

python - 将 API 数据存储到 DataFrame 中

macros - 对函数输入中的变量使用名称宏

http - Julia:如何让 HTTP.jl 从 WSL2 VM 的 ip 服务?