Взрыв фреймов данных в Julia

У меня есть такой массив Julia:

Any[Any[["link_1", "link_2", "link_3"], "82", ["A B", "C D", "E F", "G H", "I J"]]]

Я хочу преобразовать это в фрейм данных с тремя столбцами: ссылка, значение и массив. Однако я хочу «расчленить» значения внутри [»link_1», «link_2», «link_3»] (аналогично pandas.DataFrame.explode) и построить фрейм данных в Julia. Я мог бы сделать это в Python, используя функцию разнесения в Pandas, но как мне добиться того же в Julia?

Не могли бы вы предоставить ожидаемый результат, поскольку мне трудно понять, чего вы хотите достичь.

Bogumił Kamiński 29.05.2024 11:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У Джулии есть специальный пакет Dataframes (ссылка на документацию), который я бы посоветовал посмотреть, если вы имеете дело с dataframes. Функция, которую вы ищете: Dataframes.flatten()

# get the package
using Dataframes

# your data, in dataframe form
myRawData = DataFrame(
    :links=>[["link_1", "link_2", "link_3"]],
    :vals=>["82"],
    :array=>[["A B", "C D", "E F", "G H", "I J"]]
)

#= 
raw data, visualized:
1×3 DataFrame
 Row │ links                           vals    array
     │ Array…                          String  Array…
─────┼───────────────────────────────────────────────────────────────────────────
   1 │ ["link_1", "link_2", "link_3"]  82      ["A B", "C D", "E F", "G H", "I …

=#

# flattening out the links col
flatten(myRawData,[:links])

#=
output, visualized:
3×3 DataFrame
 Row │ links   vals    array
     │ String  String  Array…
─────┼───────────────────────────────────────────────────
   1 │ link_1  82      ["A B", "C D", "E F", "G H", "I …
   2 │ link_2  82      ["A B", "C D", "E F", "G H", "I …
   3 │ link_3  82      ["A B", "C D", "E F", "G H", "I …
=#

Это должно повторять функциональность Python numpy.explode('links').

Другие вопросы по теме