从多个hdf5文件读取数据时,vaex groupby提供TypeError:不可哈希类型:'Expression'

问题描述

在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') 中的最新字母。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...