列の操作

Julia でのデータ操作

Katerina Zahradova

Instructor

関数の適用

  • 列全体を受け取る関数

    • 列全体で決まる特徴。例: 平均、最小など
    • Julia では maximum() のようにフル綴りで書き、max() ではありません
  • 行ごとに作用する関数

Julia でのデータ操作

オプション

  • select()

  • transform()

  • combine()

DataFrame をその場で変更するには:

  • select!(), transform!(), combine!()
Julia でのデータ操作

select()

# 列を選択
select(penguins, :species, :body_mass_g)
333x2 DataFrame
Row species   body_mass_g
    String15  Int64
___________________________
1   Adelie    3750
2   Adelie    3800
3   Adelie    3250
...
# 列を選択して名称変更
select(penguins, :species, :body_mass_g => :weight_g)
333x2 DataFrame
Row species   weight_g
    String15  Int64
___________________________
1   Adelie    3750
2   Adelie    3800
3   Adelie    3250
...
Julia でのデータ操作

select()

# 列を選択し関数を適用
select(penguins, :species, :body_mass_g => mean)
333x2 DataFrame
Row species   body_mass_g_mm
    String15  Float64
___________________________
1   Adelie    4207.06
2   Adelie    4207.06
3   Adelie    4207.06
...
Julia でのデータ操作

transform()

# body_mass_g の最大値を列として追加
transform(penguins, :body_mass_g => maximum)
333x8 DataFrame
Row species   island    ...  body_mass_g  sex      body_mass_g_maximum
    String15  String15  ...  Int64        String7  Float64 
___________________________________________________________________
1   Adelie    Torgersen ...  3750         MALE     4207.06
2   Adelie    Torgersen ...  3800         FEMALE   4207.06
...
Julia でのデータ操作

combine()

# body_mass_g の最大値を集約して結合
combine(penguins, :body_mass_g => maximum)
1×1 DataFrame
Row  body_mass_g_mean
     Float64
__________________________
1    4207.06

Julia でのデータ操作

複数の扱い方

# 1 列に複数の関数を適用
combine(penguins, :body_mass_g .=> [mean, minimum, maximum])
Row  body_mass_g_mean  body_mass_g_minimum  body_mass_g_maximum
     Float64           Float64              Float64       
_______________________________________________________________
1    4207.06           2700                 6300
# 複数列を関数に渡す
select(penguins, [:body_mass_g, :flipper_length_mm] .=> mean)
Row  body_mass_g_mean  flipper_length_mm_mean  
     Float64           Float64              
___________________________________________
1    4207.06           200.967               
2    4207.06           200.967   
...
Julia でのデータ操作

チートシート

  • select():

    • 指定列のみを含める
    • 行数は同じ。値は全行にブロードキャスト
  • transform():

    • すべての列を保持し、新列を追加
    • 行数は同じ。値は全行にブロードキャスト
  • combine():

    • 指定列のみを含める
    • 値は全行にブロードキャストしない
Julia でのデータ操作

Passons à la pratique !

Julia でのデータ操作

Preparing Video For Download...