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
Reference
이 문제에 관하여(Julia에서 여러 Array의 모든 조합을 가진 DataFrame 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mittun/items/0aaa945e9a2bbaa95ac5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)))
columns = (:A, :B)
data = NamedTuple{columns}.(v)
df = DataFrame(data)
Reference
이 문제에 관하여(Julia에서 여러 Array의 모든 조합을 가진 DataFrame 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mittun/items/0aaa945e9a2bbaa95ac5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)