DataFrames 操作メソッドの比較
RedAmberの基本的な操作メソッドを Python pandas, R Tidyverse, Julia DataFrames と比較します。
列 (variables) を選択する
機能 |
RedAmber |
Tidyverse ® |
pandas |
DataFrames.jl |
列を選択して dataframe で返す |
pick, drop, [] |
dplyr::select, dplyr::select_if |
[], loc[], iloc[], drop, select_dtypes |
[], select |
列を選択して vector で返す |
[], v |
dplyr::pull, [, x] |
[], loc[], iloc[] |
[!, :x] |
列の順番を入れ替えた dataframeを返す |
pick, [] |
relocate |
[], reindex, loc[], iloc[] |
select,transform |
行 (records, observations) を選択する
機能 |
RedAmber |
Tidyverse ® |
pandas |
DataFrames.jl |
論理値に従って行を選択して dataframe で返す |
slice, filter, remove, [] |
dplyr::filter |
[], filter, query, loc[] |
filter |
インデックスで行を選択して dataframe で返す |
slice, remove, [] |
dplyr::slice |
iloc[], drop |
subset |
行の順番を入れ替えた dataframeを返す |
slice, [] |
dplyr::filter, dplyr::slice |
reindex, loc[], iloc[] |
permute |
列を更新する / 新しい列を作る
機能 |
RedAmber |
Tidyverse ® |
pandas |
DataFrames.jl |
既存の列の内容を変更する |
assign |
dplyr::mutate |
assign, []= |
mapcols |
新しい列を作成する |
assign, assign_left |
dplyr::mutate |
apply |
insertcols,.+ |
新しい列を作成し、残りは捨てる |
new |
transmute |
(dfply:)transmute |
transform,insertcols,mapcols |
列の名前を変更する |
rename |
dplyr::rename, dplyr::rename_with, purrr::set_names |
rename, set_axis |
rename |
dataframe をソートする |
sort |
dplyr::arrange |
sort_values |
sort |
dataframe を変形する
機能 |
RedAmber |
Tidyverse ® |
pandas |
DataFrames.jl |
列を行に積む (long dataframe にする) |
to_long |
tidyr::pivot_longer |
melt |
stack |
行を列に集める (wide dataframe にする) |
to_wide |
tidyr::pivot_wider |
pivot |
unstack |
wide dataframe を転置する |
transpose |
transpose, t |
transpose, T |
permutedims |
グループ化
機能 |
RedAmber |
Tidyverse |
pandas |
DataFrames.jl |
グループ化する |
group, group.summarize |
dplyr::group_by %>% dplyr::summarise |
groupby.agg |
combine,groupby |
dataframes または tables を結合する
機能 |
RedAmber |
Tidyverse |
pandas |
DataFrames.jl |
列として連結する (横方向に連結する) |
merge, bind_cols |
dplyr::bind_cols |
concat |
combine |
行として連結する (縦方向に連結する) |
concatenate, concat, bind_rows |
dplyr::bind_rows |
concat |
transform |
一致した行だけを連結する (内部結合) |
inner_join, join |
dplyr::inner_join |
merge |
innerjoin |
全ての行を残して連結する (外部結合) |
full_join, outer_join, join |
dplyr::full_join |
merge |
outerjoin |
左の一致した値を残して連結する (左外部結合) |
left_join, join |
dplyr::left_join |
merge |
leftjoin |
右の一致した値を残して連結する (右外部結合) |
right_join, join |
dplyr::right_join |
merge |
rightjoin |
左の行のうち、右と一致したものを返す |
semi_join, join |
dplyr::semi_join |
[isin] |
semijoin |
左の行のうち、右と一致しなかったものを返す |
anti_join, join |
dplyr::anti_join |
[isin] |
antijoin |
左か右のどちらかに現れる行を返す |
union |
dplyr::union |
merge |
|
左とみごの両方に現れる行を返す |
intersect |
dplyr::intersect |
merge |
|
左にはあるが右にはない行を返す |
difference, setdiff |
dplyr::setdiff |
merge |
|