-
Notifications
You must be signed in to change notification settings - Fork 598
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
bucket: NotImplementedError: Could not find signature for execute_node: <Bucket, Series, tuple, bool, bool, bool> #4939
Comments
@MarcSkovMadsen Thanks for reporting the issue. This operation currently isn't implemented for the pandas backend. Is it a requirement for you to have this work for the pandas backend or was it just a thing you came across while working through the holoviews support? Ideally, we wouldn't add operations for completeness's sake but if you're using this or planning to, we can add it. |
Hi @cpcloud I am new to the ibis universe. Ideally I am looking for some way to calculate a histogram that works for any ibis backend. Our users would expect to be able to use any ibis backend to create an ibis histogram if we announce ibis to be supported. As reference I am also having the problem here #4940. |
If I try to use the code proposed in #4940 it also fails with the error message import ibis
import pandas as pd
df = pd.DataFrame({
"y": [1,2,3,4,5]
})
con = ibis.pandas.connect({"df": df})
table = con.table("df")
expr=table
expr=expr.y
def to_histogram(expr):
bins=[1.0,3.0,5.0]
df = expr.to_projection()
df.mutate(bucket=df.y.bucket(bins)).bucket.value_counts().sort_by('bucket').execute()
to_histogram(expr) |
Hey @MarcSkovMadsen -- the workaround in #4940 is specific to the (probable) bug in DuckDB -- it won't help with the lack of implementation in the pandas backend. I understand wanting to offer users the ability to choose any backend so that whatever data the user brings, they can make use of holoviews. In the case of pandas dataframes, you aren't limited to the pandas backend because there is an option to create a [ins] In [1]: import pandas as pd
[ins] In [2]: df = pd.DataFrame(
...: {
...: "value": [1, 2, 3, 4, 5],
...: "group": ["a", "b", "b", "b", "a"],
...: }
...: )
[ins] In [3]: import ibis
[ins] In [4]: con = ibis.memtable(df)
[ins] In [5]: con
Out[5]:
PandasInMemoryTable
data:
DataFrameProxy:
value group
0 1 a
1 2 b
2 3 b
3 4 b
4 5 a |
Thanks so much for proposing solutions. The challenge is that the user is not providing a Pandas dataframe to hvplot/ HoloViews. he is just providing Now I will add to the list of fixtures. There are so many other combinations that I should add because the user might be using anything backend that ibis supports. |
Ok, so given that, I think that you can probably "just" offer Short of the situation where you have existing data in a specific on-disk format, I don't think there's any benefit to using a local backend that isn't |
Closing this out for now. We would happily accept a PR for the pandas backend to implement this! |
What happened?
I'm trying to see if I can get the support for Ibis working in hvPlot and HoloViews. Right now for histograms.
Running some code I see
NotImplementedError: Could not find signature for execute_node: <Bucket, Series, tuple, bool, bool, bool>
.I've reduced it to this small example
What version of ibis are you using?
3.2.0
What backend(s) are you using, if any?
Pandas.
My problem started with duckDB though. But the example above was just simpler to provide.
Relevant log output
Code of Conduct
The text was updated successfully, but these errors were encountered: