datatable
datatable copied to clipboard
[BUG] Consistency in column selection
-
Did you find a bug in datatable, or maybe the bug found you?
fsymbol accepts mixed-selector types in thejsection, which is not allowed when not selecting with thefsymbol. -
How to reproduce the bug?
from datatable import dt, f
DF = dt.Frame(
{
"V1": [1, 2, 1, 2, 1, 2, 1, 2, 1],
"V2": [1, 2, 3, 4, 5, 6, 7, 8, 9],
"V3": [0.5, 1.0, 1.5] * 3,
"V4": ["A", "B", "C"] * 3,
}
)
DF
| V1 V2 V3 V4
| int32 int32 float64 str32
-- + ----- ----- ------- -----
0 | 1 1 0.5 A
1 | 2 2 1 B
2 | 1 3 1.5 C
3 | 2 4 0.5 A
4 | 1 5 1 B
5 | 2 6 1.5 C
6 | 1 7 0.5 A
7 | 2 8 1 B
8 | 1 9 1.5 C
[9 rows x 4 columns]
In [161]: DF[:, ['V1', 0]]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-161-ada00c210ff6> in <module>
----> 1 DF[:, ['V1', 0]]
TypeError: Mixed selector types are not allowed. Element 1 is of type integer, whereas the previous element(s) were of type string
In [162]: DF[:, f['V1', 0]]
Out[162]:
| V1 V2
| int32 int32
-- + ----- -----
0 | 1 1
1 | 2 2
2 | 1 1
3 | 2 2
4 | 1 1
5 | 2 2
6 | 1 1
7 | 2 2
8 | 1 1
[9 rows x 2 columns]
-
What was the expected behavior? I think
fshould return a TypeError if the selector types are mixed -
Your environment? python: '3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) \n[GCC 9.3.0]' datatable: '1.0.0a0+build.1615412817.sam' os: linux