我有一個具有以下結構的 DataFrame,例如:
show(q)
2×5 DataFrame
Row │ state left right up down
│ Any Float64 Float64 Float64 Float64
─────┼────────────────────────────────────────────
1 │ (1, 1) 0.0 0.0 0.0 0.0
2 │ (2, 2) 0.0 0.0 0.0 0.0
我將列state用作將元組作為索引的索引列。我想使用諸如 之類的索引訪問資料q[q.state .== (1,1), 'down'],我該怎么做?
此外,當我使用此命令q[q.state .== (1,1), :]訪問相應狀態的行時,它會回傳一個空的 DataFrame:
0×5 DataFrame
Row │ state left right up down
│ Any Float64 Float64 Float64 Float64
─────┴───────────────────────────────────────────
這是為什么?
uj5u.com熱心網友回復:
首先,你犯的錯誤是當你寫的時候q.state .== (1,1),因為它會產生:
julia> q.state .== (1,1)
2-element BitVector:
0
0
因為(1,1)播完了。
你需要寫:
julia> q.state .== Ref((1,1))
2-element BitVector:
1
0
視為(1,1)標量。
現在你有:
julia> q[q.state .== Ref((1,1)), :]
1×5 DataFrame
Row │ state left right up down
│ Any Any Any Any Any
─────┼────────────────────────────────
1 │ (1, 1) 0.0 0.0 0.0 0.0
如果要訪問資料框的單個單元格,請使用查找寫入:
julia> q[findfirst(==((1,1)), q.state), :down]
0.0
或者如果你更謹慎(并確保你只有一場比賽):
julia> q[only(findall(==((1,1)), q.state)), :down]
0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/535595.html
標籤:数据框茱莉亚
上一篇:更改資料框的格式
