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

时间:2018-03-14 19:37:55

标签: python pandas dataframe dask

我是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)。当然,这会将函数应用于整个数据框,但有没有办法在一列上应用函数?谢谢。

1 个答案:

答案 0 :(得分:0)

第一个问题

如果某些内容适用于字符串列而不适用于数字命名列,那么这可能是一个错误。我建议在https://github.com/dask/dask/issues/new

提出问题

第二个问题

  

但有没有办法只在一列上应用一个函数?

您无法在直接存储在多个部分的dask数据框中应用单个Python函数,但.map_partitions.reduction等方法可能会帮助您实现相同的结果聪明。

将来我们建议在堆栈溢出时单独提出单独的问题