Skip to content

Column selections inside list.eval PanicException #22737

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 tasks done
cmdlineluser opened this issue May 13, 2025 · 0 comments
Open
2 tasks done

Column selections inside list.eval PanicException #22737

cmdlineluser opened this issue May 13, 2025 · 0 comments
Labels
bug Something isn't working needs triage Awaiting prioritization by a maintainer python Related to Python Polars

Comments

@cmdlineluser
Copy link
Contributor

cmdlineluser commented May 13, 2025

Checks

  • I have checked that this issue has not already been reported.
  • I have confirmed this bug exists on the latest version of Polars.

Reproducible example

import polars as pl

df = pl.DataFrame({"x": [[1, 2]]})

df.select(pl.col("x").list.eval(pl.exclude("")))
# PanicException: index out of bounds: the len is 0 but the index is 0

Log output

Issue description

Testing various expressions after reading the question from StackOverflow1 asking about pl.all() usage inside list.eval().

It seems only pl.col("name") is disallowed.

df.select(pl.col("x").list.eval(pl.col(pl.String)))
# PanicException: index out of bounds: the len is 0 but the index is 0

Various things seem to be allowed and end up treated the same as pl.element()

df.select(pl.col("x").list.eval(pl.exclude("im-not-here")))
df.select(pl.col("x").list.eval(pl.col(pl.Int64)))
df.select(pl.col("x").list.eval(pl.exclude("x")))
df.select(pl.col("x").list.eval(pl.nth(-1))
# shape: (1, 1)
# ┌───────────┐
# │ x         │
# │ ---       │
# │ list[i64] │
# ╞═══════════╡
# │ [1, 2]    │
# └───────────┘

AFAIK .pivot() is the other place that allows pl.element() - it seems to disallow all the cases I've tried.

(It does allow pl.all() to be used instead of pl.element())

Expected behavior

No panic.

Installed versions

--------Version info---------
Polars:              1.29.0
Index type:          UInt32
Platform:            macOS-13.6.1-arm64-arm-64bit-Mach-O
Python:              3.13.0 (main, Oct  7 2024, 05:02:14) [Clang 15.0.0 (clang-1500.1.0.2.5)]
LTS CPU:             False

----Optional dependencies----
adbc_driver_manager  <not installed>
altair               <not installed>
boto3                <not installed>
cloudpickle          <not installed>
connectorx           <not installed>
deltalake            <not installed>
fastexcel            0.12.0
fsspec               <not installed>
gevent               <not installed>
google.auth          <not installed>
great_tables         0.14.0
matplotlib           <not installed>
nest_asyncio         <not installed>
numpy                2.1.3
openpyxl             3.1.5
pandas               2.2.3
pyarrow              18.0.0
pydantic             <not installed>
pyiceberg            <not installed>
sqlalchemy           <not installed>
torch                <not installed>
xlsx2csv             <not installed>
xlsxwriter           3.2.0

Footnotes

  1. https://stackoverflow.com/questions/79619760/

@cmdlineluser cmdlineluser added bug Something isn't working python Related to Python Polars needs triage Awaiting prioritization by a maintainer labels May 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs triage Awaiting prioritization by a maintainer python Related to Python Polars
Projects
None yet
Development

No branches or pull requests

1 participant