Juliaで複数Arrayの全組み合わせを持つDataFrameを作成
複数Arrayの全組み合わせをDataFrameに変換
JuliaでDataFrameを扱う時に
leftjoinするためのベースとして
複数キーの全組み合わせを持つDataFrameが必要だったので備忘として記録
環境
Julia: 1.5
やりたいこと
AというカラムとBというカラムをキーとするDataFrameがあったとします。
Aには、["a", "b", "c"]という値が入りうるとし
Bには、["d", "e", "f"]という値が入るとした時、
以下のような、A、B列の全組み合わせを持つDataFrameを作ります。
コード
using DataFrames
arr1 = ["a", "b", "c"]
arr2 = ["d", "e", "f"]
v = vec(collect(Base.product(arr1, arr2)))
columns = (:A, :B)
data = NamedTuple{columns}.(v)
df = DataFrame(data)
解説
arr1 = ["a", "b", "c"]
arr2 = ["d", "e", "f"]
v = vec(collect(Base.product(arr1, arr2)))
まずは、2つのArrayの全組み合わせを取得します。
collectまで実行した時点では、Matrixの形式になっているため、vecでタプルの1次元配列にします。
columns = (:A, :B)
data = NamedTuple{columns}.(v)
先ほど作成したタプル配列を、ネームドタプルの配列に変換します。
配列なので . を忘れずに。
df = DataFrame(data)
methods(DataFrame)
の実行結果を見れば分かりますが、DataFrameはネームドタプルの配列を引数に取って初期化することが出来ますので、上記のプログラムで所望の結果が得られます。
参考
Iteration utilities
DataFrame construction from array of tuples
Author And Source
この問題について(Juliaで複数Arrayの全組み合わせを持つDataFrameを作成), 我々は、より多くの情報をここで見つけました https://qiita.com/mittun/items/0aaa945e9a2bbaa95ac5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .