关于python:在Dask DataFrame中修改(例如,执行数学函数)列的最佳方法是什么?

What is the the best way to modify (e.g., perform math functions) a column in a Dask DataFrame?

我是pandas数据帧对象的老手,但我正在努力寻找一种干净、方便的方法来改变dask数据帧列中的值。对于一个特定的例子,我试图将numpy.float列中的正值乘以-1,从而使它们成为负值。这是我当前的方法(我正在尝试更改数据帧中的最后一列):

1
2
cols = df.columns
df[[cols[-1]]] = df[[cols[-1]]]*-1

这似乎只有当列有一个字符串头时才有效,否则它将使用索引号作为新列的字符串类型列名添加另一列。是否有类似于熊猫方法的东西,比如说,df.iloc[-1,:] = df.iloc[-1,:]*-1,我可以使用DASK数据帧?

编辑:我还想实现:df = df.applymap(lambda x: x*-1)。当然,这会将函数应用于整个数据帧,但是否有一种方法可以将函数仅应用于一列?谢谢您。


第一个问题

如果某些东西对字符串列有效,而不是对数字命名列有效,那么这可能是一个bug。我建议在https://github.com/dask/dask/issues/new上提出问题

第二个问题

but is there a way to apply a function over just one column?

不能将单个python函数应用于直接存储在多个数据块中的dask数据帧,但是像.map_partitions.reduction这样的方法可能有助于您以某种巧妙性获得相同的结果。

今后,我们建议在堆栈溢出时单独提问。