Dataframe 如何基于行的字符串值高效地抓取数据
我的数据集如图所示:Dataframe 如何基于行的字符串值高效地抓取数据,dataframe,julia,Dataframe,Julia,我的数据集如图所示: 我为一个特定的县建立了一个简单的线性回归模型,现在我想在不同的县测试它的准确性。目前,我知道我可以使用以下命令为一个县创建数据子集:tompkins=tax[strip.(tax.county,[''])。==“tompkins”,:]。然而,以这种方式手动为每个县创建数据子集将非常麻烦。是否有一种更有效的方法可以收集所有县数据子集,以便在其上运行线性模型?您正在寻找的是groupby 假设您有以下数据帧: julia> df = DataFrame(Country
我为一个特定的县建立了一个简单的线性回归模型,现在我想在不同的县测试它的准确性。目前,我知道我可以使用以下命令为一个县创建数据子集:
tompkins=tax[strip.(tax.county,[''])。==“tompkins”,:]
。然而,以这种方式手动为每个县创建数据子集将非常麻烦。是否有一种更有效的方法可以收集所有县数据子集,以便在其上运行线性模型?您正在寻找的是groupby
假设您有以下数据帧
:
julia> df = DataFrame(Country=rand([:A,:B,:C],7), year=rand(2000:2020,7), tax=rand(7))
7×3 DataFrame
│ Row │ Country │ year │ tax │
│ │ Symbol │ Int64 │ Float64 │
├─────┼─────────┼───────┼──────────┤
│ 1 │ A │ 2014 │ 0.913118 │
│ 2 │ C │ 2003 │ 0.894182 │
│ 3 │ A │ 2018 │ 0.917585 │
│ 4 │ C │ 2011 │ 0.869531 │
│ 5 │ A │ 2011 │ 0.45841 │
│ 6 │ B │ 2001 │ 0.808954 │
│ 7 │ B │ 2008 │ 0.969813 │
您可以按每个国家/地区收集信息:
dfg = groupby(df, :Country);
现在:
julia> dfg[1]
3×3 SubDataFrame
│ Row │ Country │ year │ tax │
│ │ Symbol │ Int64 │ Float64 │
├─────┼─────────┼───────┼──────────┤
│ 1 │ A │ 2014 │ 0.913118 │
│ 2 │ A │ 2018 │ 0.917585 │
│ 3 │ A │ 2011 │ 0.45841 │
julia> dfg[2]
2×3 SubDataFrame
│ Row │ Country │ year │ tax │
│ │ Symbol │ Int64 │ Float64 │
├─────┼─────────┼───────┼──────────┤
│ 1 │ C │ 2003 │ 0.894182 │
│ 2 │ C │ 2011 │ 0.869531 │
julia> dfg[3]
2×3 SubDataFrame
│ Row │ Country │ year │ tax │
│ │ Symbol │ Int64 │ Float64 │
├─────┼─────────┼───────┼──────────┤
│ 1 │ B │ 2001 │ 0.808954 │
│ 2 │ B │ 2008 │ 0.969813 │
请注意,为了更快地搜索,最好使用Symbol
s而不是string。始终可以使用矢量化的符号。(
构造函数来转换字符串的任何列