问题描述
在Python中,我使用vaex(vdf = vaex.open('test_*.hdf5')
)从多个hdf5文件中打开一个数据框。一切似乎都很好,例如合并两列以创建新列(vdf['newcol'] = vdf.x+vdf.y
)。
但是我无法让vaex的groupby工作:vdf.groupby('x',agg='count')
抛出TypeError: unhashable type: 'Expression'
。
x
是整数列还是字符串列似乎无关紧要。当我仅读取一个hdf5文件时,它工作得很好,但是一旦将多个文件组合到一个vaex数据帧中,它就会失败。该错误的原因可能是什么,我该如何解决?
解决方法
您正在运行哪个版本的Vaex?如果以下示例适合您,则意味着从源安装时已修复:
df
# A tibble: 22 x 4
A B C FINAL
<chr> <chr> <chr> <chr>
1 . . . .
2 15023:1 . . 15023:1
3 0 . 0 0
4 18308:28 . . 18308:28
5 14,812.61 . . 14812.61
6 17717:36 17717:36 17717:36 17717:36
7 . 21095:1 . .
8 . . 12912:33 .
9 9849 9849 9849 9849
10 16548.00 . . 16548.00
如果上述示例适用于您,则您已经可以尝试使用import vaex
import vaex.ml
df1 = vaex.ml.datasets.load_iris()
df2 = vaex.ml.datasets.load_iris()
df = vaex.concat([df1,df2])
df.groupby('class_',agg='count')
中的最新字母。