我是Pandas DataFrame对象的老手,但我很难找到一种干净,方便的方法来改变Dask DataFrame列中的值。对于一个具体的例子,我试图将numpy.float列中的正值乘以-1,从而使它们为负数。这是我当前的方法(我试图更改DataFrame中的最后一列):
cols = df.columns
df[[cols[-1]]] = df[[cols[-1]]]*-1
这似乎仅在列具有字符串头时才起作用,否则它使用索引号添加另一列作为新列的字符串类型列名。是否有类似于Pandas方法的东西,比如df.iloc[-1,:] = df.iloc[-1,:]*-1
,我可以使用Dask数据帧?
编辑:我还尝试实施:df = df.applymap(lambda x: x*-1)
。当然,这会将函数应用于整个数据框,但有没有办法在一列上应用函数?谢谢。
答案 0 :(得分:0)
如果某些内容适用于字符串列而不适用于数字命名列,那么这可能是一个错误。我建议在https://github.com/dask/dask/issues/new
提出问题但有没有办法只在一列上应用一个函数?
您无法在直接存储在多个部分的dask数据框中应用单个Python函数,但.map_partitions
或.reduction
等方法可能会帮助您实现相同的结果聪明。
将来我们建议在堆栈溢出时单独提出单独的问题