Трансляция одного значения ячейки в столбецPython

Программы на Python
Anonymous
 Трансляция одного значения ячейки в столбец

Сообщение Anonymous »

В pandas можно передать одно значение всему столбцу или даже фрагменту:

Код: Выделить всё

frame.loc[start_index:stop_index, 'a'] = frame.loc[some_row_index, 'a']
то есть одно значение передается в серию.
Я попробовал нечто подобное с полярами, выполнив

Код: Выделить всё

frame = frame.with_columns(
pl.when(
pl.col("Time").is_between(datetime(2022, 4, 21), datetime(2022, 4, 23))
)
.then(
pl.lit(
frame.filter(pl.col("Time") == datetime(2022, 4, 20)).select(
"col"
)
)
)
.otherwise(pl.col("col"))
.alias("col")
)
но получаю следующую ошибку:

Код: Выделить всё

ValueError: could not convert value 'shape: (1, 1)\n┌────────┐\n│ col │\n│ ---    │\n│ i64    │\n╞════════╡\n│ 14     │\n└────────┘' as a Literal
Если я просто использую в назначении целое число, например pl.lit(6), оно работает нормально. Как я могу передать одно значение ячейки в столбец или часть столбца?

Изменить: Хорошо, очевидно, индексация в dataFrame shape(1,1) вот так

Код: Выделить всё

frame.filter(pl.col("Time") == datetime(2022, 4, 20)).select("col")[0,0]
и приведение результата к буквальному формату asf. работает, но, учитывая, что документация довольно подробная об отказе от использования квадратных скобок, возможно, есть лучший способ?

Подробнее здесь: https://stackoverflow.com/questions/738 ... o-a-column

Вернуться в «Python»