使用 cudf 数据框搜索索引不适用于 numpy

searching index with cudf dataframe doesn't work with numpy

我刚刚用 cudf (rapidsai) 加载了 csv 文件以减少所需的时间。 当我尝试使用条件 df['X'] = A.

搜索索引时出现问题

这是我的代码示例:

import cudf, io, requests
df = cudf.read_csv('fileA.csv')

# X is an existing column
# A is the value
df['X'] = np.where(df['X'] == A, 1, 0)

# What it is supposed to do with pandas is it search the index where df['X'] is equal to value A, 
# and change them to 1, otherwise leave them as 0.

但是报错如下:

if len(cond) ! = len(self):
  raise ValueError("""Array conditional must be same shape as self""")
input_col = self._data[self.name]

ValueError : Array conditional must be same shape as self

我不明白为什么会这样,因为我以前从未遇到过 pandas 的任何问题。

cuDF 正在尝试通过数组函数协议从 numpy.where 调度到 cupy.where。由于某种原因,在这种情况下,cuDF 无法成功 运行 调度函数。

一般来说,建议在这里明确使用 CuPy 而不是 numpy。

import cudf
import cupy as cp
​
A = 2
df = cudf.DataFrame({"X": [0, 1, 2]})
df['X'] = cp.where(df['X'] == A, 1, 0)
df
X
0   0
1   0
2   1