julia - 在 Julia DataFrame 中查找一行

标签 julia julia-dataframe

在 DataFrames.jl 的 DataFrame 中查找行的规范方法是什么?

例如,给定这个 DataFrame:

│ Row  │ uuid                                 │ name                          
│      │ String                               │ String                       
├──────┼──────────────────────────────────────┼──────────────────────────────
│ 1    │ 0efae8bf-39e6-5d65-b05d-c8947f4cee2a │ COSMA_jll                    
│ 2    │ 17ccb2e5-db19-44b3-b354-4fd16d92c74e │ CitableImage   

给定名称“CitableImage”,检索 uuid 的最佳方法是什么?

最佳答案

我通常会使用:

filter(:name => ==("CitableImage"), df)

它会生成一个数据框,因为您可以有多个匹配行。

如果您确定只有一行会匹配,那么您还可以这样写:

df[only(findall(==("CitableImage"), df.name)), :]

(only 函数检查您是否只选择了一行)

如果你想使用索引获取数据框,你可以这样写:

df[df.name .== "CitableImage", :]

df[findall(==("CitableImage"), df.name), :]

最后我们还提供了 subset 函数,但是它的正常用例有点不同所以这里比 filter 更冗长:

subset(df, :name => ByRow(==("CitableImage")))

如果您想进行多次查找并希望它们高效,那么最好执行以下操作:

gdf = groupby(df, :name)

然后做:

gdf[("CitableImage",)]

如果您进行多次此类查找,速度会快得多。

关于julia - 在 Julia DataFrame 中查找一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68273485/

相关文章:

julia - Julia 的 NetCDF

matlab - 从 Octave 的 fminunc 到 Julia 的带参数梯度函数优化

python - 如何将 Python pandas 转换为 Julia DataFrame(使用 PyJulia)并返回到 Python Pandas

julia - 在 Julia 中绘制数据帧上的简单移动平均线

matplotlib - 如何使用 Julia 的 PyPlot.jl 向图形添加补丁

dataframe - 如何在 Julia 中将数组的数组转换为 DataFrame?

julia - 检查两组是否有非空交集

Julia - 数据切片在 for 循环中不起作用 - 但在没有 for 循环的情况下工作

julia - 如何检查 DataFrame 的所有元素是否都是非负的?

julia - 如何在 Julia 数据框中删除/删除空行和 NaN?