-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Make int_range()
and int_ranges()
work with no inputs and default to int_range(0, pl.len())
#17810
Comments
Coincidentally, the |
Actually, not a coincidence I saw the bump and it reminded me of asking for this default. |
@ritchie46 is this one ok to do or do you have any objections? |
This feels counter-intuitive to me: I would expect a range function called without specified bounds to raise. EDIT: Furthermore, |
Chiming in, I think It also seems to be a super obvious operation and very common to use, why is there any argument about it? |
@mcrumiller I, for one, am not arguing against @Oreilles Lots of things are counterintuitive until you get used to them. That said, I don't really share that sense of it being counterintuitive since it exists in a context that has a length that is a natural default so why not make it the default? |
Intuitiveness certainely is subjective, but using
|
@Oreilles your arguments seem to be for having another expression to generate a numeric index rather than against having It already defaults to starting at 0 when only 1 parameter is passed so why not have it default the length parameter to the context length when no parameters are input? |
Description
It seems from questions in the discord and on SO that
int_range
is mostly used as an index so I think it'd be a little more convenient if we could drop typing inpl.len()
So if we have
df=pl.DataFrame({'a':[2,5,8]})
then instead of
df.with_columns(z=pl.int_range(pl.len()))
we could just dodf.with_columns(z=pl.int_range())
Of course in this specific example it'd be quicker to do
df.with_row_index('z')
but in the cases where we're using it in anover
or whatever it's just a small QOL improvement. Since it currently raises when there are no inputs, there shouldn't be any backward compatibility issues with this change.I can make a PR to do this, just want to make sure it's what people want.
The text was updated successfully, but these errors were encountered: