Как создать фрейм данных polars из словаря с неравными значениями длины?

У меня есть словарь как:

ex_dict = {'A': ['false',
  'true',
  'false',
  'false',
  'false',
  'true',
  'true',
  'false',
  'false'],
 'B': ['false',
  'false',
  'true',
  'false',
  'false',
  'false'],
  'C': ['false',
  'true',
  'true',
  'false',
  'false',
  'false',
  'false',
  'false',
  'true']}

Я создаю фрейм данных как:

pl.DataFrame(ex_dict)

при выполнении выдает ошибку:

ShapeError: Could not create a new DataFrame from Series. The Series have different lengths.Got [shape: (9,)

Как создать фрейм данных polars в этих сценариях?

stackoverflow.com/questions/19736080/…
Сергей Кох 14.11.2022 10:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете поместить каждую серию в свой собственный DataFrame и использовать concat с how = "horizontal". Это автоматически расширит более короткую серию со значениями null.

pl.concat(
    items=[pl.DataFrame({_name: _values})
           for _name, _values in ex_dict.items()],
    how = "horizontal",
)
shape: (9, 3)
┌───────┬───────┬───────┐
│ A     ┆ B     ┆ C     │
│ ---   ┆ ---   ┆ ---   │
│ str   ┆ str   ┆ str   │
╞═══════╪═══════╪═══════╡
│ false ┆ false ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ true  ┆ false ┆ true  │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ false ┆ true  ┆ true  │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ false ┆ false ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ false ┆ false ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ true  ┆ false ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ true  ┆ null  ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ false ┆ null  ┆ false │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ false ┆ null  ┆ true  │
└───────┴───────┴───────┘

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