如何过滤 Julia 数据框?

AVA*_*AVA 5 dataframe julia

数据框如下:

\n
julia> df3\n8\xc3\x976 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 RegionID \xe2\x94\x82 RegionName   \xe2\x94\x82 StateName    \xe2\x94\x82 SizeRank \xe2\x94\x82 2008-03 \xe2\x94\x82 2008-04 \xe2\x94\x82\n\xe2\x94\x82     \xe2\x94\x82 Any      \xe2\x94\x82 Any          \xe2\x94\x82 Any          \xe2\x94\x82 Any      \xe2\x94\x82 Any     \xe2\x94\x82 Any     \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1   \xe2\x94\x82 6181     \xe2\x94\x82 New York     \xe2\x94\x82 New York     \xe2\x94\x82 1        \xe2\x94\x82 missing \xe2\x94\x82 missing \xe2\x94\x82\n\xe2\x94\x82 2   \xe2\x94\x82 12447    \xe2\x94\x82 Los Angeles  \xe2\x94\x82 California   \xe2\x94\x82 2        \xe2\x94\x82 1446    \xe2\x94\x82 1705    \xe2\x94\x82\n\xe2\x94\x82 3   \xe2\x94\x82 39051    \xe2\x94\x82 Houston      \xe2\x94\x82 Texas        \xe2\x94\x82 3        \xe2\x94\x82 2926    \xe2\x94\x82 3121    \xe2\x94\x82\n\xe2\x94\x82 4   \xe2\x94\x82 17426    \xe2\x94\x82 Chicago      \xe2\x94\x82 Illinois     \xe2\x94\x82 4        \xe2\x94\x82 2910    \xe2\x94\x82 3022    \xe2\x94\x82\n\xe2\x94\x82 5   \xe2\x94\x82 6915     \xe2\x94\x82 San Antonio  \xe2\x94\x82 Texas        \xe2\x94\x82 5        \xe2\x94\x82 1479    \xe2\x94\x82 1529    \xe2\x94\x82\n\xe2\x94\x82 6   \xe2\x94\x82 13271    \xe2\x94\x82 Philadelphia \xe2\x94\x82 Pennsylvania \xe2\x94\x82 6        \xe2\x94\x82 1609    \xe2\x94\x82 1795    \xe2\x94\x82\n\xe2\x94\x82 7   \xe2\x94\x82 40326    \xe2\x94\x82 Phoenix      \xe2\x94\x82 Arizona      \xe2\x94\x82 7        \xe2\x94\x82 1310    \xe2\x94\x82 1519    \xe2\x94\x82\n\xe2\x94\x82 8   \xe2\x94\x82 18959    \xe2\x94\x82 Las Vegas    \xe2\x94\x82 Nevada       \xe2\x94\x82 8        \xe2\x94\x82 1618    \xe2\x94\x82 1856    \xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

选择 StateName 等于 Arizona 的行时抛出错误,如下所示:

\n
julia> filter(:StateName => ==("Arizona"), df3)\nERROR: MethodError: objects of type Pair{Symbol,Base.Fix2{typeof(==),String}} are not callable\nStacktrace:\n [1] (::DataFrames.var"#53#54"{Pair{Symbol,Base.Fix2{typeof(==),String}}})(::DataFrameRow{DataFrame,DataFrames.Index}) at ./none:0\n [2] iterate at ./generator.jl:47 [inlined]\n [3] collect at ./array.jl:665 [inlined]\n [4] filter(::Pair{Symbol,Base.Fix2{typeof(==),String}}, ::DataFrame) at /opt/julia/julia-1.4.1/share/julia/stdlib/v1.4/packages/DataFrames/yH0f6/src/abstractdataframe/abstractdataframe.jl:758\n [5] top-level scope at REPL[102]:1\n
Run Code Online (Sandbox Code Playgroud)\n

请指导我选择 StateName 等于 Arizona 的行。

\n

Bog*_*ski 8

请将您的 DataFrames.jl 更新到最新版本(当前为 1.2)。您使用的是 1.0 之前的发行版本。如果您必须坚持使用您的版本,请执行以下操作:

filter(row -> row.StateName == "Arizona", df3)
Run Code Online (Sandbox Code Playgroud)

要不就

df3[df3.StateName .== "Arizona", :]
Run Code Online (Sandbox Code Playgroud)