muo*_*uon 4 data-manipulation subset dataframe julia
using DataFrames
df = DataFrame(A = 1:10, B = 2:2:20)
10x2 DataFrame
| Row | A | B |
|-----|----|----|
| 1 | 1 | 2 |
| 2 | 2 | 4 |
| 3 | 3 | 6 |
| 4 | 4 | 8 |
| 5 | 5 | 10 |
...
...
Run Code Online (Sandbox Code Playgroud)
是否可以通过使用值列表来对数据帧进行子集化,例如
df[df[:A] .in [3,4], :]
Run Code Online (Sandbox Code Playgroud)
如果列表很小,可以通过以下方式完成
df[(df[:A] .== 3) | (df[:A] .== 4), :]
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有办法对大量值执行此操作
上面接受的答案不再有效。\n所以这是 2019 年有效的方法:
\n\n# by column name\n\njulia> df[ [x in [3,4] for x in df[:A]] ,:]\n2\xc3\x972 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 A \xe2\x94\x82 B \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 Int64 \xe2\x94\x82 Int64 \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\xbc\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 3 \xe2\x94\x82 6 \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 4 \xe2\x94\x82 8 \xe2\x94\x82\n\n# or by column number\n\njulia> df[ [x in [3,4] for x in df[:1]] ,:]\n2\xc3\x972 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 A \xe2\x94\x82 B \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 Int64 \xe2\x94\x82 Int64 \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\xbc\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 3 \xe2\x94\x82 6 \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 4 \xe2\x94\x82 8 \xe2\x94\x82\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |