У меня есть фрейм данных с определенным количеством групп, содержащий столбец веса и список значений, который может иметь произвольную длину, например:
df.with_columns(
pl.col("Vals").list.eval(pl.element() * 3).alias("Weight1"), #Multiplying with literal works
pl.col("Vals").list.eval(pl.element() * pl.col("Weight")).alias("Weight2"), #Does not work
pl.col("Vals").list.eval(pl.element() * pl.col("Unknown")).alias("Weight3"), #Unknown columns give same value
pl.col("Vals").list.eval(pl.col("Vals") * pl.col("Weight")).alias("Weight4"), #Same effect
# pl.col('Vals') * 3 -> gives an error
)
Если я не правильно понимаю, похоже, что вы не можете получить доступ к столбцам за пределами списка из функции eval. Возможно, существует способ использовать понимание списка в операторе, но это не совсем удачное решение.
Какой подход здесь рекомендуется использовать? Любая помощь будет оценена по достоинству!
У меня есть фрейм данных с определенным количеством групп, содержащий столбец веса и список значений, который может иметь произвольную длину, например:
df = pl.DataFrame(
{
Group : ,
Weight : ,
Vals : [ , , ]
}
)...
У меня есть фрейм данных с определенным количеством групп, содержащий столбец веса и список значений, который может иметь произвольную длину, например:
df = pl.DataFrame(
{
Group : ,
Weight : ,
Vals : [ , , ]
}
)...
Я попытался сделать это, чтобы создать новый столбец, где каждая строка представляет собой массив, содержащий значения столбца b, умноженные на столбец a.
data = {'a': , 'b': [ , ]}
df = pd.DataFrame(data)
df = df.apply(lambda row: [row * x for x...
Я попытался сделать это, чтобы создать новый столбец, где каждая строка представляет собой массив, содержащий значения столбца b, умноженные на столбец a.
data = {'a': , 'b': [ , ]}
df = pd.DataFrame(data)
df = df.apply(lambda row: [row * x for x...
Я попытался сделать это, чтобы создать новый столбец, где каждая строка представляет собой массив, содержащий значения столбца b, умноженные на столбец a.
data = {'a': , 'b': [ , ]}
df = pd.DataFrame(data)
df = df.apply(lambda row: [row * x for x...