ジュリアでデータフレームの最初と最後の部分を表示する方法
概要
ジュリアのデータフレームには head
や tail
関数がない。他の言語に比べてもう一度手を動かす必要があり面倒だが、first
と last
関数を使えばいい。なぜ DataFrames.jl
は業界の慣習を無視して頑固にしているのか。その理由は大まかに次のように要約できる1:
- すでに
Base
にBase.tail
という関数が存在し、衝突を避けたい。 head
やtail
以前にfirst
とlast
がすでに同じ目的で実装されていた。- 関数の名前はなるべく短くするのが良く、
head
やtail
はあまりにも普遍的で短い。
コード
using DataFrames
df = DataFrame(reshape(1:100, :, 5), :auto)
first
julia> first(df, 3)
3×5 DataFrame
Row │ x1 x2 x3 x4 x5
│ Int64 Int64 Int64 Int64 Int64
─────┼───────────────────────────────────
1 │ 1 21 41 61 81
2 │ 2 22 42 62 82
3 │ 3 23 43 63 83
last
julia> last(df, 10)
10×5 DataFrame
Row │ x1 x2 x3 x4 x5
│ Int64 Int64 Int64 Int64 Int64
─────┼───────────────────────────────────
1 │ 11 31 51 71 91
2 │ 12 32 52 72 92
3 │ 13 33 53 73 93
4 │ 14 34 54 74 94
5 │ 15 35 55 75 95
6 │ 16 36 56 76 96
7 │ 17 37 57 77 97
8 │ 18 38 58 78 98
9 │ 19 39 59 79 99
10 │ 20 40 60 80 100
第二引数を省略するとデフォルトとして一行だけを表示する。
julia> last(df)
DataFrameRow
Row │ x1 x2 x3 x4 x5
│ Int64 Int64 Int64 Int64 Int64
─────┼───────────────────────────────────
20 │ 20 40 60 80 100
環境
- OS: Windows
- julia: v1.11.1
- DataFrames v1.7.0