Closed
Description
Is the following pattern supported by the Standard?
df: DataFrame
features = []
for column_name in df.column_names:
if df.col(column_name).std() > 0:
features.append(column_name)
return features
?
I think people are expecting that it should, but there's currently really no guarantee that it does.
All the API currently says about Column.std
is that the return type should be a ducktyped float scalar. Let's try this:
In [1]: class FancyFloatScalar:
...: def __init__(self, value):
...: self._value = value
...: def __float__(self):
...: return value
...:
In [2]: scalar = FancyFloatScalar(0.5)
In [3]: scalar > 0
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[3], line 1
----> 1 scalar > 0
TypeError: '>' not supported between instances of 'FancyFloatScalar' and 'int'
In [4]: scalar > 0.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[4], line 1
----> 1 scalar > 0.
TypeError: '>' not supported between instances of 'FancyFloatScalar' and 'float'
What's the way of out of this?
cc @kkraus14 as you've said you wanted ducktyped scalars here